# HG changeset patch # User Daniel Atallah # Date 1209137841 0 # Node ID 98fd7c994d683c7d1b2d7db78b743ced37cd4283 # Parent 17cd33c5b5efe2b3800cf06020b409558b6ea3cc Avoiding emitting the "savedstatus-changed" signal twice when the savedstatus is set to idleaway. Also, NULL freed memory so that if plugins try to do stuff they shouldn't do, we don't access it. diff -r 17cd33c5b5ef -r 98fd7c994d68 libpurple/savedstatuses.c --- a/libpurple/savedstatuses.c Fri Apr 25 05:53:48 2008 +0000 +++ b/libpurple/savedstatuses.c Fri Apr 25 15:37:21 2008 +0000 @@ -1128,10 +1128,12 @@ g_list_free(accounts); - purple_savedstatus_set_idleaway(FALSE); - - purple_signal_emit(purple_savedstatuses_get_handle(), "savedstatus-changed", - saved_status, old); + if (purple_savedstatus_is_idleaway()) { + purple_savedstatus_set_idleaway(FALSE); + } else { + purple_signal_emit(purple_savedstatuses_get_handle(), "savedstatus-changed", + saved_status, old); + } } void @@ -1250,6 +1252,7 @@ } g_hash_table_destroy(creation_times); + creation_times = NULL; purple_signals_unregister_by_instance(purple_savedstatuses_get_handle()); }