summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Atallah <datallah@pidgin.im>2008-05-03 19:45:15 +0000
committerDaniel Atallah <datallah@pidgin.im>2008-05-03 19:45:15 +0000
commitf6bb894b0ddc49238ddf9be4ac08714bebed8510 (patch)
tree76b9ecf671d2126b29f7d84bb0deeacae0ca7ff1
parent60899d0103ed026d5ebc973e5b6e44c6b229cf0e (diff)
downloadpidgin-f6bb894b0ddc49238ddf9be4ac08714bebed8510.tar.gz
Clean up loggers when quitting (or unloading the logreader plugin).
-rw-r--r--libpurple/log.c12
-rw-r--r--libpurple/plugins/log_reader.c20
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;
}