Moved unref's of external objects to dispose
authorSergio Villar Senin <svillar@igalia.com>
Wed, 5 Aug 2009 16:10:25 +0000 (18:10 +0200)
committerSergio Villar Senin <svillar@igalia.com>
Wed, 5 Aug 2009 16:10:25 +0000 (18:10 +0200)
src/modest-dimming-rule.c
src/modest-dimming-rules-group.c

index 7e834be..4595164 100644 (file)
@@ -33,6 +33,7 @@
 static void modest_dimming_rule_class_init (ModestDimmingRuleClass *klass);
 static void modest_dimming_rule_init       (ModestDimmingRule *obj);
 static void modest_dimming_rule_finalize   (GObject *obj);
+static void modest_dimming_rule_dispose    (GObject *obj);
 
 typedef struct _ModestDimmingRulePrivate ModestDimmingRulePrivate;
 struct _ModestDimmingRulePrivate {
@@ -83,6 +84,7 @@ modest_dimming_rule_class_init (ModestDimmingRuleClass *klass)
 
        parent_class            = g_type_class_peek_parent (klass);
        gobject_class->finalize = modest_dimming_rule_finalize;
+       gobject_class->dispose  = modest_dimming_rule_dispose;
 
        g_type_class_add_private (gobject_class, sizeof(ModestDimmingRulePrivate));
 }
@@ -118,6 +120,21 @@ modest_dimming_rule_finalize (GObject *obj)
        G_OBJECT_CLASS(parent_class)->finalize (obj);
 }
 
+static void
+modest_dimming_rule_dispose (GObject *obj)
+{
+       ModestDimmingRulePrivate *priv;
+
+       priv = MODEST_DIMMING_RULE_GET_PRIVATE(obj);
+
+       if (priv->group != NULL) {
+               g_object_unref (priv->group);
+               priv->group = NULL;
+       }
+
+       G_OBJECT_CLASS(parent_class)->dispose (obj);
+}
+
 
 ModestDimmingRule*
 modest_dimming_rule_new(ModestWindow *win,
index 4b3fd27..4231a3d 100644 (file)
@@ -36,6 +36,7 @@
 static void modest_dimming_rules_group_class_init (ModestDimmingRulesGroupClass *klass);
 static void modest_dimming_rules_group_init       (ModestDimmingRulesGroup *obj);
 static void modest_dimming_rules_group_finalize   (GObject *obj);
+static void modest_dimming_rules_group_dispose    (GObject *obj);
 
 #ifndef MODEST_TOOLKIT_GTK
 static void _insensitive_press_callback (GtkWidget *widget, gpointer user_data);
@@ -100,6 +101,7 @@ modest_dimming_rules_group_class_init (ModestDimmingRulesGroupClass *klass)
 
        parent_class            = g_type_class_peek_parent (klass);
        gobject_class->finalize = modest_dimming_rules_group_finalize;
+       gobject_class->dispose  = modest_dimming_rules_group_dispose;
 
        g_type_class_add_private (gobject_class, sizeof(ModestDimmingRulesGroupPrivate));
 }
@@ -131,16 +133,27 @@ modest_dimming_rules_group_finalize (GObject *obj)
        if (priv->window)
                g_object_weak_unref (G_OBJECT (priv->window), on_window_destroy, obj);
 
-       if (priv->name != NULL)
-               g_free(priv->name);
+       G_OBJECT_CLASS(parent_class)->finalize (obj);
+}
+
+static void
+modest_dimming_rules_group_dispose (GObject *obj)
+{
+       ModestDimmingRulesGroupPrivate *priv;
 
-       if (priv->rules_map != NULL)
+       priv = MODEST_DIMMING_RULES_GROUP_GET_PRIVATE(obj);
+
+       if (priv->rules_map != NULL) {
                g_hash_table_destroy (priv->rules_map);
+               priv->rules_map = NULL;
+       }
 
-       if (priv->widget_rules != NULL)
+       if (priv->widget_rules != NULL) {
                g_slist_foreach (priv->widget_rules, (GFunc) g_object_unref, NULL);
+               priv->widget_rules = NULL;
+       }
 
-       G_OBJECT_CLASS(parent_class)->finalize (obj);
+       G_OBJECT_CLASS(parent_class)->dispose (obj);
 }