(svn r26091) -Fix (r26089): double frees... woospie

This commit is contained in:
rubidium 2013-11-24 16:21:19 +00:00
parent c54a70cce8
commit 4de2871fc0

View File

@ -798,7 +798,10 @@ int openttd_main(int argc, char *argv[])
} }
#endif /* ENABLE_NETWORK */ #endif /* ENABLE_NETWORK */
if (!HandleBootstrap()) goto exit; if (!HandleBootstrap()) {
ShutdownGame();
goto exit_bootstrap;
}
_video_driver->ClaimMousePointer(); _video_driver->ClaimMousePointer();
@ -874,29 +877,33 @@ int openttd_main(int argc, char *argv[])
SaveToHighScore(); SaveToHighScore();
} }
exit:
/* Reset windowing system, stop drivers, free used memory, ... */ /* Reset windowing system, stop drivers, free used memory, ... */
ShutdownGame(); ShutdownGame();
goto exit_normal;
exit_noshutdown: exit_noshutdown:
/* These three are normally freed before bootstrap. */
free(graphics_set);
free(videodriver);
free(blitter);
exit_bootstrap:
/* These are normally freed before exit, but after bootstrap. */
free(sounds_set);
free(music_set);
free(musicdriver);
free(sounddriver);
exit_normal:
free(BaseGraphics::ini_set); free(BaseGraphics::ini_set);
free(BaseSounds::ini_set); free(BaseSounds::ini_set);
free(BaseMusic::ini_set); free(BaseMusic::ini_set);
free(graphics_set);
free(sounds_set);
free(music_set);
free(_ini_musicdriver); free(_ini_musicdriver);
free(_ini_sounddriver); free(_ini_sounddriver);
free(_ini_videodriver); free(_ini_videodriver);
free(_ini_blitter); free(_ini_blitter);
free(musicdriver);
free(sounddriver);
free(videodriver);
free(blitter);
return ret; return ret;
} }