diff options
author | Senko Rasic <senko.rasic@collabora.co.uk> | 2007-01-05 16:52:34 +0000 |
---|---|---|
committer | Senko Rasic <senko.rasic@collabora.co.uk> | 2007-01-05 16:52:34 +0000 |
commit | 83a2b32018ecd965f024dc6942fff8666b10ce7c (patch) | |
tree | 860bfbf7600d8c1fcae5da254ecb0ce2b166a3d7 | |
parent | f4ebefa92b8cbe519f0e500ff2d1558e0215d18d (diff) | |
download | telepathy-gabble-83a2b32018ecd965f024dc6942fff8666b10ce7c.tar.gz |
GabbleConnection, GabbleVCardManager: changed disposal order, making vcard callbacks on dispose harmless
20070105165234-01440-9404f883dccb841d8f1b2ab82420c18b03e4169e.gz
-rw-r--r-- | src/gabble-connection.c | 6 | ||||
-rw-r--r-- | src/vcard-manager.c | 6 |
2 files changed, 4 insertions, 8 deletions
diff --git a/src/gabble-connection.c b/src/gabble-connection.c index 7d773662b..7b8cff962 100644 --- a/src/gabble-connection.c +++ b/src/gabble-connection.c @@ -870,6 +870,9 @@ gabble_connection_dispose (GObject *object) priv->channel_requests = NULL; } + g_object_unref (self->vcard_manager); + self->vcard_manager = NULL; + g_ptr_array_foreach (priv->channel_factories, (GFunc) g_object_unref, NULL); g_ptr_array_free (priv->channel_factories, TRUE); priv->channel_factories = NULL; @@ -880,9 +883,6 @@ gabble_connection_dispose (GObject *object) g_object_unref (self->disco); self->disco = NULL; - g_object_unref (self->vcard_manager); - self->vcard_manager = NULL; - g_object_unref (self->presence_cache); self->presence_cache = NULL; diff --git a/src/vcard-manager.c b/src/vcard-manager.c index e4d309e2b..5aee563a5 100644 --- a/src/vcard-manager.c +++ b/src/vcard-manager.c @@ -205,11 +205,7 @@ gabble_vcard_manager_dispose (GObject *object) /* cancel request removes the element from the list after cancelling */ while (priv->requests) - { - GabbleVCardManagerRequest *request = (GabbleVCardManagerRequest *) priv->requests->data; - request->callback = NULL; - cancel_request (request); - } + cancel_request (priv->requests->data); if (G_OBJECT_CLASS (gabble_vcard_manager_parent_class)->dispose) G_OBJECT_CLASS (gabble_vcard_manager_parent_class)->dispose (object); |