From: Brad A. <br...@us...> - 2011-09-10 16:57:10
|
gemrb: Infinity Engine emulator The branch master has been updated via 7f538ce0748e553354b52b55e04e4749d8850893 (commit) via 94ace94b040c2a7252447a7a8c2aa95d4f3aea97 (commit) Summary of changes: gemrb/plugins/OpenALAudio/OpenALAudio.cpp | 16 +++++++++++++--- 1 files changed, 13 insertions(+), 3 deletions(-) from b403bb92ca8d557fbddfd4d61f5e95ffc1556dad (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://gemrb.git.sourceforge.net/git/gitweb.cgi?p=gemrb/gemrb;a=commitdiff;h=7f538ce0748e553354b52b55e04e4749d8850893 commit 7f538ce0748e553354b52b55e04e4749d8850893 Author: Brad Allred <bra...@me...> Date: Sat Sep 10 10:52:50 2011 -0600 replace SDL_killThread (a "graceless" kill). this fixes a hang on quit with SDL 1.2 on Mac. diff --git a/gemrb/plugins/OpenALAudio/OpenALAudio.cpp b/gemrb/plugins/OpenALAudio/OpenALAudio.cpp index 53fe6f8..ed6cbac 100644 --- a/gemrb/plugins/OpenALAudio/OpenALAudio.cpp +++ b/gemrb/plugins/OpenALAudio/OpenALAudio.cpp @@ -241,9 +241,8 @@ OpenALAudioDriver::~OpenALAudioDriver(void) alcCloseDevice (device); } alutContext = NULL; - SDL_mutexP(musicMutex); - SDL_KillThread(musicThread); - SDL_mutexV(musicMutex); + stayAlive = false; + SDL_WaitThread(musicThread, NULL); SDL_DestroyMutex(musicMutex); musicMutex = NULL; http://gemrb.git.sourceforge.net/git/gitweb.cgi?p=gemrb/gemrb;a=commitdiff;h=94ace94b040c2a7252447a7a8c2aa95d4f3aea97 commit 94ace94b040c2a7252447a7a8c2aa95d4f3aea97 Author: Brad Allred <bra...@me...> Date: Sat Sep 10 10:49:25 2011 -0600 hacks around a severe memory leak on apple devices (os x, ios) diff --git a/gemrb/plugins/OpenALAudio/OpenALAudio.cpp b/gemrb/plugins/OpenALAudio/OpenALAudio.cpp index e2edb4b..53fe6f8 100644 --- a/gemrb/plugins/OpenALAudio/OpenALAudio.cpp +++ b/gemrb/plugins/OpenALAudio/OpenALAudio.cpp @@ -87,8 +87,19 @@ void AudioStream::ClearProcessedBuffers() checkALError("Failed to unqueue buffers", "WARNING"); if (delete_buffers) { +#ifdef __APPLE__ // mac os x and iOS + /* FIXME: hackish + somebody with more knowledge than me could perhapps figure out + why Apple's implementation of alSourceUnqueueBuffers seems to delay (threading thing?) + and possible how better to deal with this. + */ + do{ + alDeleteBuffers(processed, b); + }while(alGetError() != AL_NO_ERROR); +#else alDeleteBuffers(processed, b); checkALError("Failed to delete buffers", "WARNING"); +#endif } delete[] b; ----------------------------------------------------------------------- This is an automated email from the git hooks/post-receive script. -- gemrb: Infinity Engine emulator |