diff options
author | Daniel Atallah <datallah@pidgin.im> | 2008-05-03 19:45:15 +0000 |
---|---|---|
committer | Daniel Atallah <datallah@pidgin.im> | 2008-05-03 19:45:15 +0000 |
commit | f6bb894b0ddc49238ddf9be4ac08714bebed8510 (patch) | |
tree | 76b9ecf671d2126b29f7d84bb0deeacae0ca7ff1 | |
parent | 60899d0103ed026d5ebc973e5b6e44c6b229cf0e (diff) | |
download | pidgin-f6bb894b0ddc49238ddf9be4ac08714bebed8510.tar.gz |
Clean up loggers when quitting (or unloading the logreader plugin).
-rw-r--r-- | libpurple/log.c | 12 | ||||
-rw-r--r-- | libpurple/plugins/log_reader.c | 20 |
2 files changed, 32 insertions, 0 deletions
diff --git a/libpurple/log.c b/libpurple/log.c index e9727d2b90..c5a6557283 100644 --- a/libpurple/log.c +++ b/libpurple/log.c @@ -667,6 +667,18 @@ void purple_log_uninit(void) { purple_signals_unregister_by_instance(purple_log_get_handle()); + + purple_log_logger_remove(html_logger); + purple_log_logger_free(html_logger); + html_logger = NULL; + + purple_log_logger_remove(txt_logger); + purple_log_logger_free(txt_logger); + txt_logger = NULL; + + purple_log_logger_remove(old_logger); + purple_log_logger_free(old_logger); + old_logger = NULL; } /**************************************************************************** diff --git a/libpurple/plugins/log_reader.c b/libpurple/plugins/log_reader.c index bb5057bb36..9663a27037 100644 --- a/libpurple/plugins/log_reader.c +++ b/libpurple/plugins/log_reader.c @@ -2789,14 +2789,34 @@ plugin_unload(PurplePlugin *plugin) g_return_val_if_fail(plugin != NULL, FALSE); purple_log_logger_remove(adium_logger); + purple_log_logger_free(adium_logger); + adium_logger = NULL; + #if 0 purple_log_logger_remove(fire_logger); + purple_log_logger_free(fire_logger); + fire_logger = NULL; + purple_log_logger_remove(messenger_plus_logger); + purple_log_logger_free(messenger_plus_logger); + messenger_plus_logger = NULL; #endif + purple_log_logger_remove(msn_logger); + purple_log_logger_free(msn_logger); + msn_logger = NULL; + purple_log_logger_remove(trillian_logger); + purple_log_logger_free(trillian_logger); + trillian_logger = NULL; + purple_log_logger_remove(qip_logger); + purple_log_logger_free(qip_logger); + qip_logger = NULL; + purple_log_logger_remove(amsn_logger); + purple_log_logger_free(amsn_logger); + amsn_logger = NULL; return TRUE; } |