Browse Source

We now return nil instead of a null SoundData when getting recorded data fails.

Bill Meltsner 15 years ago
parent
commit
5f2197158d
2 changed files with 5 additions and 3 deletions
  1. 1 1
      src/modules/audio/openal/Audio.cpp
  2. 4 2
      src/modules/audio/wrap_Audio.cpp

+ 1 - 1
src/modules/audio/openal/Audio.cpp

@@ -71,7 +71,7 @@ namespace openal
 		
 		alcMakeContextCurrent(0);
 		alcDestroyContext(context);
-		alcCaptureCloseDevice(capture);
+		if (capture) alcCaptureCloseDevice(capture);
 		alcCloseDevice(device);
 	}
 

+ 4 - 2
src/modules/audio/wrap_Audio.cpp

@@ -212,7 +212,8 @@ namespace audio
 	int w_getRecordedData(lua_State * L)
 	{
 		love::sound::SoundData * sd = instance->getRecordedData();
-		luax_newtype(L, "SoundData", SOUND_SOUND_DATA_T, (void*)sd);
+		if (!sd) lua_pushnil(L);
+		else luax_newtype(L, "SoundData", SOUND_SOUND_DATA_T, (void*)sd);
 		return 1;
 	}
 	
@@ -220,7 +221,8 @@ namespace audio
 	{
 		if (luax_optboolean(L, 1, true)) {
 			love::sound::SoundData * sd = instance->stopRecording(true);
-			luax_newtype(L, "SoundData", SOUND_SOUND_DATA_T, (void*)sd);
+			if (!sd) lua_pushnil(L);
+			else luax_newtype(L, "SoundData", SOUND_SOUND_DATA_T, (void*)sd);
 			return 1;
 		}
 		instance->stopRecording(false);