DEADSOFTWARE

исправлен segfault при закрытии окна программы
authorARembo <ARembo@gmail.com>
Mon, 25 Jul 2011 16:56:58 +0000 (12:56 -0400)
committerARembo <ARembo@gmail.com>
Mon, 25 Jul 2011 16:56:58 +0000 (12:56 -0400)
src/music.c
src/sound.c

index 5e7308f67d84ab58035334f0a5c9e307947ab6ea..8f9c13e2fadb4ba3f5a4866d96795c0c31e570de 100644 (file)
@@ -64,9 +64,11 @@ void S_initmusic(void)
 
 void S_donemusic(void)
 {
-    F_freemus();
-    Mix_CloseAudio();
-    SDL_QuitSubSystem(SDL_INIT_AUDIO);
+    if (SDL_WasInit(SDL_INIT_AUDIO)) {
+        F_freemus();
+        Mix_CloseAudio();
+        SDL_QuitSubSystem(SDL_INIT_AUDIO);
+    }
 }
 
 void S_startmusic(int time)
index ab925241120c2e8c22b05234ae1d90ede8edff79..cee95a9272077da13635fcd1169a57ad4d3a7ad2 100644 (file)
@@ -74,8 +74,10 @@ void S_init(void)
 void S_done(void)
 {
     free_chunks();
-    Mix_CloseAudio();
-    SDL_QuitSubSystem(SDL_INIT_AUDIO);
+    if (SDL_WasInit(SDL_INIT_AUDIO)) {
+        Mix_CloseAudio();
+        SDL_QuitSubSystem(SDL_INIT_AUDIO);
+    }
 }
 
 Mix_Chunk * get_chunk(snd_t *s, int r, int v)