Fixed crash on exit by resetting logging callbacks after game lib has

been unloaded
dev
Shariq Shah 7 years ago
parent 551edc78e5
commit e7154b4435
  1. 7
      src/common/log.c
  2. 1
      src/common/log.h
  3. 3
      src/game/main.c

@ -186,3 +186,10 @@ void log_error_callback_stub(const char* context, const char* message, va_list a
{
// This is just a stub in-case no callback has been set
}
void log_reset_all_callbacks(void)
{
message_callback = log_message_callback_stub;
warning_callback = log_warning_callback_stub;
error_callback = log_error_callback_stub;
}

@ -20,5 +20,6 @@ void log_file_handle_set(FILE* file);
void log_message_callback_set(Log_Message_CB callback);
void log_warning_callback_set(Log_Warning_CB callback);
void log_error_callback_set(Log_Error_CB callback);
void log_reset_all_callbacks(void);
#endif

@ -278,6 +278,7 @@ void cleanup(void)
if(game.cleanup) game.cleanup();
if(game_lib_handle) platform_unload_library(game_lib_handle);
if(window) window_destroy(window);
log_reset_all_callbacks(); // Now that the game library has been unloaded, reset all callbacks to stubs so we don't crash on exit
sound_cleanup();
platform_unload_gl();
platform_cleanup();
@ -301,7 +302,7 @@ bool game_lib_load(void)
return false;
}
game_lib_handle = platform_load_library("libSymmetry.copy");
game_lib_handle = platform_load_library("Symmetry_Game.copy");
#else
game_lib_handle = platform_load_library("Symmetry_Game");
#endif

Loading…
Cancel
Save