]> git.0d.be Git - empathy.git/commitdiff
Implement dispose
authorCosimo Cecchi <cosimoc@gnome.org>
Thu, 6 Aug 2009 17:19:49 +0000 (19:19 +0200)
committerSjoerd Simons <sjoerd.simons@collabora.co.uk>
Sat, 22 Aug 2009 13:21:07 +0000 (14:21 +0100)
src/empathy-account-assistant.c

index dc83330a00b5e9f0b86acce77defee53366d772c..5bcd602e7c79b2503b360fb125561e47c9ac0f63 100644 (file)
@@ -68,6 +68,8 @@ typedef struct {
   EmpathyAccountSettings *settings;
 
   GtkWindow *parent_window;
+
+  gboolean dispose_run;
 } EmpathyAccountAssistantPriv;
 
 static GtkWidget *
@@ -624,6 +626,26 @@ do_constructed (GObject *object)
   gtk_window_set_type_hint (GTK_WINDOW (object), GDK_WINDOW_TYPE_HINT_DIALOG);
 }
 
+static void
+do_dispose (GObject *obj)
+{
+  EmpathyAccountAssistantPriv *priv = GET_PRIV (obj);
+
+  if (priv->dispose_run)
+    return;
+
+  priv->dispose_run = TRUE;
+
+  if (priv->settings != NULL)
+    {
+      g_object_unref (priv->settings);
+      priv->settings = NULL;
+    }
+
+  if (G_OBJECT_CLASS (empathy_account_assistant_parent_class)->dispose != NULL)
+    G_OBJECT_CLASS (empathy_account_assistant_parent_class)->dispose (obj);
+}
+
 static void
 empathy_account_assistant_class_init (EmpathyAccountAssistantClass *klass)
 {
@@ -633,6 +655,7 @@ empathy_account_assistant_class_init (EmpathyAccountAssistantClass *klass)
   oclass->get_property = do_get_property;
   oclass->set_property = do_set_property;
   oclass->constructed = do_constructed;
+  oclass->dispose = do_dispose;
 
   param_spec = g_param_spec_object ("parent-window",
       "parent-window", "The parent window",