From: Sergio Villar Senin Date: Wed, 5 Aug 2009 16:10:25 +0000 (+0200) Subject: Moved unref's of external objects to dispose X-Git-Tag: 3.0.17-rc29~6 X-Git-Url: http://git.maemo.org/git/?p=modest;a=commitdiff_plain;h=80511f262d9d22f6fa09ca783f78afffbc5885cd Moved unref's of external objects to dispose --- diff --git a/src/modest-dimming-rule.c b/src/modest-dimming-rule.c index 7e834be..4595164 100644 --- a/src/modest-dimming-rule.c +++ b/src/modest-dimming-rule.c @@ -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, diff --git a/src/modest-dimming-rules-group.c b/src/modest-dimming-rules-group.c index 4b3fd27..4231a3d 100644 --- a/src/modest-dimming-rules-group.c +++ b/src/modest-dimming-rules-group.c @@ -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); }