aboutsummaryrefslogtreecommitdiff
path: root/libdbusmenu-gtk/parser.c
diff options
context:
space:
mode:
Diffstat (limited to 'libdbusmenu-gtk/parser.c')
-rw-r--r--libdbusmenu-gtk/parser.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/libdbusmenu-gtk/parser.c b/libdbusmenu-gtk/parser.c
index d26f8fb..1936d2d 100644
--- a/libdbusmenu-gtk/parser.c
+++ b/libdbusmenu-gtk/parser.c
@@ -85,6 +85,8 @@ dbusmenu_gtk_parse_menu_structure (GtkWidget * widget)
return NULL;
}
+/* Called when the dbusmenu item that we're keeping around
+ is finalized */
static void
dbusmenu_cache_freed (gpointer data, GObject * obj)
{
@@ -94,9 +96,12 @@ dbusmenu_cache_freed (gpointer data, GObject * obj)
return;
}
+/* Called if we replace the cache on the object with a new
+ dbusmenu menuitem */
static void
object_cache_freed (gpointer data)
{
+ if (!G_IS_OBJECT(data)) return;
g_object_weak_unref(G_OBJECT(data), dbusmenu_cache_freed, data);
return;
}