# HG changeset patch # User Mark Doliner # Date 1290423032 0 # Node ID a467e55ec3c7bfc98f25e9e1ed2c79487d31a756 # Parent 3cf95447b26c5d11e3fdaa2dcac28b30e9c15b37 Move the call to flap_connection_schedule_destroy from oscar_chat_kill to oscar_chat_leave. This avoids having flap_connection_schedule_destroy called from purple_connerr, which itself is called by flap_connection_destroy_cb I'm hoping this change fixes #5927, the oscar crash when a flap connection is disconnected. diff -r 3cf95447b26c -r a467e55ec3c7 libpurple/protocols/oscar/oscar.c --- a/libpurple/protocols/oscar/oscar.c Mon Nov 22 10:49:06 2010 +0000 +++ b/libpurple/protocols/oscar/oscar.c Mon Nov 22 10:50:32 2010 +0000 @@ -283,7 +283,6 @@ /* Destroy the chat_connection */ od->oscar_chats = g_slist_remove(od->oscar_chats, cc); - flap_connection_schedule_destroy(cc->conn, OSCAR_DISCONNECT_DONE, NULL); oscar_chat_destroy(cc); } @@ -4451,6 +4450,7 @@ purple_conversation_get_name(conv)); cc = find_oscar_chat(gc, purple_conv_chat_get_id(PURPLE_CONV_CHAT(conv))); + flap_connection_schedule_destroy(cc->conn, OSCAR_DISCONNECT_DONE, NULL); oscar_chat_kill(gc, cc); }