aboutsummaryrefslogtreecommitdiff
path: root/libdbusmenu-glib/menuitem.c
diff options
context:
space:
mode:
authorTed Gould <ted@gould.cx>2011-03-07 10:48:13 -0600
committerTed Gould <ted@gould.cx>2011-03-07 10:48:13 -0600
commitb0af2cb938c23b980bd39ec3094d6d04e0996e25 (patch)
treef1026b0da497e13fe9a4f7eff74f0e474b85ccfd /libdbusmenu-glib/menuitem.c
parent639d982ed6fb70b09cd72e19a73d16a5e2f78db3 (diff)
downloadlibdbusmenu-b0af2cb938c23b980bd39ec3094d6d04e0996e25.tar.gz
libdbusmenu-b0af2cb938c23b980bd39ec3094d6d04e0996e25.tar.bz2
libdbusmenu-b0af2cb938c23b980bd39ec3094d6d04e0996e25.zip
Steal earlier instead of later so that signal handlers don't find the value in the hashtable
Diffstat (limited to 'libdbusmenu-glib/menuitem.c')
-rw-r--r--libdbusmenu-glib/menuitem.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/libdbusmenu-glib/menuitem.c b/libdbusmenu-glib/menuitem.c
index 8534370..950889b 100644
--- a/libdbusmenu-glib/menuitem.c
+++ b/libdbusmenu-glib/menuitem.c
@@ -1215,6 +1215,7 @@ dbusmenu_menuitem_property_set_variant (DbusmenuMenuitem * mi, const gchar * pro
it) after the signal emition */
remove = TRUE;
replaced = TRUE;
+ g_hash_table_steal(priv->properties, property);
}
}
@@ -1235,7 +1236,8 @@ dbusmenu_menuitem_property_set_variant (DbusmenuMenuitem * mi, const gchar * pro
}
if (remove) {
- g_hash_table_remove(priv->properties, property);
+ g_free(hash_key);
+ g_variant_unref(hash_variant);
}
return TRUE;