diff options
author | Ted Gould <ted@gould.cx> | 2011-03-07 10:48:13 -0600 |
---|---|---|
committer | Ted Gould <ted@gould.cx> | 2011-03-07 10:48:13 -0600 |
commit | b0af2cb938c23b980bd39ec3094d6d04e0996e25 (patch) | |
tree | f1026b0da497e13fe9a4f7eff74f0e474b85ccfd | |
parent | 639d982ed6fb70b09cd72e19a73d16a5e2f78db3 (diff) | |
download | libdbusmenu-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
-rw-r--r-- | libdbusmenu-glib/menuitem.c | 4 |
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; |