Do not call the non-destroy prpl-ops when the connection is gone.

Wed, 15 Apr 2009 06:57:48 +0000

author
Paul Aurich <darkrain42@pidgin.im>
date
Wed, 15 Apr 2009 06:57:48 +0000
changeset 26921
81e8285f1fb5
parent 26920
d460454d4241
child 26922
022073ca48f4

Do not call the non-destroy prpl-ops when the connection is gone.

libpurple/disco.c file | annotate | diff | comparison | revisions
--- a/libpurple/disco.c	Wed Apr 15 04:38:28 2009 +0000
+++ b/libpurple/disco.c	Wed Apr 15 06:57:48 2009 +0000
@@ -144,7 +144,9 @@
 		purple_disco_list_destroy(list);
 }
 
-void purple_disco_list_service_add(PurpleDiscoList *list, PurpleDiscoService *service, PurpleDiscoService *parent)
+void purple_disco_list_service_add(PurpleDiscoList *list,
+                                   PurpleDiscoService *service,
+                                   PurpleDiscoService *parent)
 {
 	g_return_if_fail(list != NULL);
 	g_return_if_fail(service != NULL);
@@ -194,8 +196,14 @@
 
 void purple_disco_cancel_get_list(PurpleDiscoList *list)
 {
+	PurpleConnection *pc;
+
 	g_return_if_fail(list != NULL);
 
+	pc = purple_account_get_connection(list->account);
+
+	g_return_if_fail(pc != NULL);
+
 	if (list->ops.cancel_cb)
 		list->ops.cancel_cb(list);
 
@@ -205,11 +213,16 @@
 void purple_disco_service_expand(PurpleDiscoService *service)
 {
 	PurpleDiscoList *list;
+	PurpleConnection *pc;
 
 	g_return_if_fail(service != NULL);
-	g_return_if_fail((service->flags & PURPLE_DISCO_BROWSE) == PURPLE_DISCO_BROWSE);
+	g_return_if_fail((service->flags & PURPLE_DISCO_BROWSE));
 
 	list = service->list;
+	pc = purple_account_get_connection(list->account);
+	
+	g_return_if_fail(pc != NULL);
+
 	purple_disco_list_set_in_progress(list, TRUE);
 
 	if (list->ops.expand_cb)
@@ -376,6 +389,7 @@
 void purple_disco_list_set_expand_func(PurpleDiscoList *list, PurpleDiscoServiceExpandFunc cb)
 {
 	g_return_if_fail(list != NULL);
+
 	list->ops.expand_cb = cb;
 }
 

mercurial