aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@lanedo.com>2012-10-26 13:00:49 +0200
committerAleksander Morgado <aleksander@lanedo.com>2012-10-30 15:35:58 +0100
commite5b4b4d0e5ab11a581504ce88be2a1aa317524e8 (patch)
treec5dbdfc5c940044a5ba1fb83243ee904dc8ea4fa
parent49c19bf83e0c03e8d134d2c1d6a8d60df7d341f3 (diff)
plugin-manager: use dispose() as we're holding plugin objects
-rw-r--r--src/mm-plugin-manager.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/mm-plugin-manager.c b/src/mm-plugin-manager.c
index e456c73d..d5759b65 100644
--- a/src/mm-plugin-manager.c
+++ b/src/mm-plugin-manager.c
@@ -695,14 +695,17 @@ initable_init (GInitable *initable,
}
static void
-finalize (GObject *object)
+dispose (GObject *object)
{
MMPluginManager *self = MM_PLUGIN_MANAGER (object);
/* Cleanup list of plugins */
- g_list_free_full (self->priv->plugins, (GDestroyNotify)g_object_unref);
+ if (self->priv->plugins) {
+ g_list_free_full (self->priv->plugins, (GDestroyNotify)g_object_unref);
+ self->priv->plugins = NULL;
+ }
- G_OBJECT_CLASS (mm_plugin_manager_parent_class)->finalize (object);
+ G_OBJECT_CLASS (mm_plugin_manager_parent_class)->dispose (object);
}
static void
@@ -719,5 +722,5 @@ mm_plugin_manager_class_init (MMPluginManagerClass *manager_class)
g_type_class_add_private (object_class, sizeof (MMPluginManagerPrivate));
/* Virtual methods */
- object_class->finalize = finalize;
+ object_class->dispose = dispose;
}