diff options
author | Ted Gould <ted@canonical.com> | 2009-05-25 23:08:56 +0200 |
---|---|---|
committer | Ted Gould <ted@canonical.com> | 2009-05-25 23:08:56 +0200 |
commit | 0b46d2d1e1acbe32b5468565731a6e5a08c9282b (patch) | |
tree | 4edee66a391edd634c3de87224b2447971a80fe2 /libdbusmenu-glib | |
parent | 4614822dddd73d5ab16f7f97555f99e8b5460d4c (diff) | |
download | libdbusmenu-0b46d2d1e1acbe32b5468565731a6e5a08c9282b.tar.gz libdbusmenu-0b46d2d1e1acbe32b5468565731a6e5a08c9282b.tar.bz2 libdbusmenu-0b46d2d1e1acbe32b5468565731a6e5a08c9282b.zip |
Unref'ing the children if we're being killed ourselves
Diffstat (limited to 'libdbusmenu-glib')
-rw-r--r-- | libdbusmenu-glib/menuitem.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/libdbusmenu-glib/menuitem.c b/libdbusmenu-glib/menuitem.c index 9506cad..91429d6 100644 --- a/libdbusmenu-glib/menuitem.c +++ b/libdbusmenu-glib/menuitem.c @@ -185,6 +185,14 @@ dbusmenu_menuitem_init (DbusmenuMenuitem *self) static void dbusmenu_menuitem_dispose (GObject *object) { + DbusmenuMenuitemPrivate * priv = DBUSMENU_MENUITEM_GET_PRIVATE(object); + + GList * child = NULL; + for (child = priv->children; child != NULL; child = g_list_next(child)) { + g_object_unref(G_OBJECT(child->data)); + } + g_list_free(priv->children); + priv->children = NULL; G_OBJECT_CLASS (dbusmenu_menuitem_parent_class)->dispose (object); return; @@ -193,6 +201,7 @@ dbusmenu_menuitem_dispose (GObject *object) static void dbusmenu_menuitem_finalize (GObject *object) { + g_debug("Menuitem dying"); DbusmenuMenuitemPrivate * priv = DBUSMENU_MENUITEM_GET_PRIVATE(object); if (priv->properties != NULL) { |