# HG changeset patch # User Paul Aurich # Date 1250133987 0 # Node ID 32a7077464544770301747ab9878e44f1dd53e84 # Parent 9621d984f6ca881793103c1ba1f135deeff8d973 Clean up various file-scoped globals at uninit. These are all from a user's valgrind log in #pidgin a week or so ago. I think only the proxy and pounce are legitimate leaks. diff -r 9621d984f6ca -r 32a707746454 libpurple/pounce.c --- a/libpurple/pounce.c Thu Aug 13 01:17:04 2009 +0000 +++ b/libpurple/pounce.c Thu Aug 13 03:26:27 2009 +0000 @@ -1157,4 +1157,7 @@ } purple_signals_disconnect_by_handle(purple_pounces_get_handle()); + + g_hash_table_destroy(pounce_handlers); + pounce_handlers = NULL; } diff -r 9621d984f6ca -r 32a707746454 libpurple/prefs.c --- a/libpurple/prefs.c Thu Aug 13 01:17:04 2009 +0000 +++ b/libpurple/prefs.c Thu Aug 13 03:26:27 2009 +0000 @@ -1450,6 +1450,8 @@ sync_prefs(); } + purple_prefs_disconnect_by_handle(purple_prefs_get_handle()); + prefs_loaded = FALSE; purple_prefs_destroy(); g_hash_table_destroy(prefs_hash); diff -r 9621d984f6ca -r 32a707746454 libpurple/proxy.c --- a/libpurple/proxy.c Thu Aug 13 01:17:04 2009 +0000 +++ b/libpurple/proxy.c Thu Aug 13 03:26:27 2009 +0000 @@ -2531,4 +2531,9 @@ purple_proxy_connect_data_disconnect(handles->data, NULL); purple_proxy_connect_data_destroy(handles->data); } + + purple_prefs_disconnect_by_handle(purple_proxy_get_handle()); + + purple_proxy_info_destroy(global_proxy_info); + global_proxy_info = NULL; } diff -r 9621d984f6ca -r 32a707746454 libpurple/savedstatuses.c --- a/libpurple/savedstatuses.c Thu Aug 13 01:17:04 2009 +0000 +++ b/libpurple/savedstatuses.c Thu Aug 13 03:26:27 2009 +0000 @@ -1235,6 +1235,8 @@ void purple_savedstatuses_uninit(void) { + gpointer handle = purple_savedstatuses_get_handle(); + remove_old_transient_statuses(); if (save_timer != 0) @@ -1253,6 +1255,7 @@ g_hash_table_destroy(creation_times); creation_times = NULL; - purple_signals_unregister_by_instance(purple_savedstatuses_get_handle()); + purple_signals_unregister_by_instance(handle); + purple_signals_disconnect_by_handle(handle); }