/soc/2015/jgeboski/facebook: 8cf22d7f1c83: facebook: fixed a sle...
James Geboski <[email protected]>
| Newsgroups | gmane.comp.gnome.gaim.cvs |
|---|---|
| Message-ID | <[email protected]> |
Changeset: 8cf22d7f1c83b725e5b98665fc4df5a02708dfbd Author: James Geboski <[email protected]> Date: 2015-08-07 18:35 -0400 Branch: facebook URL: https://hg.pidgin.im/soc/2015/jgeboski/facebook/rev/8cf22d7f1c83 Description: facebook: fixed a slew of issues with room lists This addresses: - Canceled requests leading to warnings spewing - Doubly freeing the PurpleRoomlist - More than one PurpleRoomlist leaking - Progress always being FALSE diffstat: libpurple/protocols/facebook/data.c | 4 ---- libpurple/protocols/facebook/facebook.c | 10 ++++++++++ 2 files changed, 10 insertions(+), 4 deletions(-) diffs (55 lines): diff --git a/libpurple/protocols/facebook/data.c b/libpurple/protocols/facebook/data.c --- a/libpurple/protocols/facebook/data.c +++ b/libpurple/protocols/facebook/data.c @@ -57,10 +57,6 @@ fb_data_dispose(GObject *obj) g_object_unref(priv->api); } - if (priv->roomlist != NULL) { - g_object_unref(priv->roomlist); - } - g_hash_table_destroy(priv->icons); g_hash_table_destroy(priv->icona); } diff --git a/libpurple/protocols/facebook/facebook.c b/libpurple/protocols/facebook/facebook.c --- a/libpurple/protocols/facebook/facebook.c +++ b/libpurple/protocols/facebook/facebook.c @@ -369,6 +369,11 @@ fb_cb_api_thread_list(FbApi *api, GSList PurpleRoomlistRoom *room; list = fb_data_get_roomlist(fata); + + if (G_UNLIKELY(list == NULL)) { + return; + } + gstr = g_string_new(NULL); for (l = thrds; l != NULL; l = l->next) { @@ -394,6 +399,7 @@ fb_cb_api_thread_list(FbApi *api, GSList } purple_roomlist_set_in_progress(list, FALSE); + fb_data_set_roomlist(fata, NULL); g_string_free(gstr, TRUE); } @@ -852,6 +858,9 @@ fb_roomlist_get_list(PurpleConnection *g PurpleRoomlistField *fld; fata = purple_connection_get_protocol_data(gc); + list = fb_data_get_roomlist(fata); + g_return_val_if_fail(list == NULL, NULL); + api = fb_data_get_api(fata); acct = purple_connection_get_account(gc); list = purple_roomlist_new(acct); @@ -868,6 +877,7 @@ fb_roomlist_get_list(PurpleConnection *g flds = g_list_reverse(flds); purple_roomlist_set_fields(list, flds); + purple_roomlist_set_in_progress(list, TRUE); fb_api_thread_list(api); return list; } _______________________________________________ Commits mailing list [email protected] https://pidgin.im/cgi-bin/mailman/listinfo/commits