diff options
author | Ted Gould <ted@gould.cx> | 2011-03-28 21:24:01 -0500 |
---|---|---|
committer | Ted Gould <ted@gould.cx> | 2011-03-28 21:24:01 -0500 |
commit | 5766be11ec43784c95058888c730d69dfc9906a3 (patch) | |
tree | 86a9312b6935c295d27d3bde7919f214d2ce29d0 /libdbusmenu-glib | |
parent | fc5c510e6e1148f4ec622491d4eee18a1171c3c7 (diff) | |
parent | 3473a33b499be4d6c2bf7762bf836e1139353970 (diff) | |
download | libdbusmenu-5766be11ec43784c95058888c730d69dfc9906a3.tar.gz libdbusmenu-5766be11ec43784c95058888c730d69dfc9906a3.tar.bz2 libdbusmenu-5766be11ec43784c95058888c730d69dfc9906a3.zip |
Ensure the parent stays ref'd
Diffstat (limited to 'libdbusmenu-glib')
-rw-r--r-- | libdbusmenu-glib/client.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/libdbusmenu-glib/client.c b/libdbusmenu-glib/client.c index 049cc91..ef89705 100644 --- a/libdbusmenu-glib/client.c +++ b/libdbusmenu-glib/client.c @@ -598,10 +598,10 @@ get_properties_callback (GObject *obj, GAsyncResult * res, gpointer user_data) } /* Callback all the folks we can find */ - GVariant * child = g_variant_get_child_value(params, 0); + GVariant * parent = g_variant_get_child_value(params, 0); GVariantIter iter; - g_variant_iter_init(&iter, child); - g_variant_unref(child); + g_variant_iter_init(&iter, parent); + GVariant * child; while ((child = g_variant_iter_next_value(&iter)) != NULL) { if (g_strcmp0(g_variant_get_type_string(child), "(ia{sv})") != 0) { g_warning("Properties return signature is not '(ia{sv})' it is '%s'", g_variant_get_type_string(child)); @@ -632,6 +632,7 @@ get_properties_callback (GObject *obj, GAsyncResult * res, gpointer user_data) g_variant_unref(properties); g_variant_unref(child); } + g_variant_unref(parent); g_variant_unref(params); /* Provide errors for those who we can't */ @@ -1391,7 +1392,7 @@ menuitem_get_properties_replace_cb (GVariant * properties, GError * error, gpoin /* Remove the entries from the current list that we have new values for. This way we don't create signals of them being removed with the duplication of the value being changed. */ - while (g_variant_iter_loop(&iter, "{sv}", &name, &value) && have_error == FALSE) { + while (g_variant_iter_loop(&iter, "{sv}", &name, &value)) { for (tmp = current_props; tmp != NULL; tmp = g_list_next(tmp)) { if (g_strcmp0((gchar *)tmp->data, name) == 0) { current_props = g_list_delete_link(current_props, tmp); |