diff libpurple/protocols/oscar/oscar.c @ 30958:a467e55ec3c7

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.
author Mark Doliner <mark@kingant.net>
date Mon, 22 Nov 2010 10:50:32 +0000
parents 3cf95447b26c
children 04ffd3b52283
line wrap: on
line diff
--- 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);
 }