[empathy] IndividualManager: disconnect handler from aggregator



commit 36ef8807996629af42cec57fdb2adf4799b1cba4
Author: Will Thompson <will thompson collabora co uk>
Date:   Tue Sep 6 11:06:30 2011 +0100

    IndividualManager: disconnect handler from aggregator
    
    Previously, the handler for
    FolksIndividualAggregator::individuals-changed was never disconnected;
    thus it could be called after EmpathyIndividualManager dies (if its
    aggregator outlives it), and crash us.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=658340

 libempathy/empathy-individual-manager.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)
---
diff --git a/libempathy/empathy-individual-manager.c b/libempathy/empathy-individual-manager.c
index 47a01cb..7b6adef 100644
--- a/libempathy/empathy-individual-manager.c
+++ b/libempathy/empathy-individual-manager.c
@@ -234,6 +234,9 @@ individual_manager_dispose (GObject *object)
   EmpathyIndividualManagerPriv *priv = GET_PRIV (object);
 
   g_hash_table_destroy (priv->individuals);
+
+  g_signal_handlers_disconnect_by_func (priv->aggregator,
+      aggregator_individuals_changed_cb, object);
   tp_clear_object (&priv->aggregator);
 
   G_OBJECT_CLASS (empathy_individual_manager_parent_class)->dispose (object);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]