dwlb

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

commit b4f40687620f5645224fc970236612829807f836
parent 8b959ea64c1c43093594f30402616edce0ac4374
Author: Janne Veteläinen <janne.vetelainen@elisanet.fi>
Date:   Wed, 17 Apr 2024 21:34:17 +0300

fix refcounting

Diffstat:
Mdbusmenu.c | 14++++++++------
1 file changed, 8 insertions(+), 6 deletions(-)

diff --git a/dbusmenu.c b/dbusmenu.c @@ -68,15 +68,16 @@ check_has_sections(GVariant *data) { gboolean ret = FALSE; char *val; - GVariant *menuitem_data; + GVariant *menu_data; GVariantIter iter; g_variant_iter_init(&iter, data); - while ((g_variant_iter_next(&iter, "v", &menuitem_data))) { - GVariant *menu_data = g_variant_get_child_value(menuitem_data, 1); - gboolean check = g_variant_lookup(menu_data, "type", "&s", &val); + while ((g_variant_iter_next(&iter, "v", &menu_data))) { + GVariant *menuitem_data = g_variant_get_child_value(menu_data, 1); + gboolean check = g_variant_lookup(menuitem_data, "type", "&s", &val); if (check && strcmp(val, "separator") == 0) ret = TRUE; + g_variant_unref(menuitem_data); g_variant_unref(menu_data); } @@ -181,7 +182,6 @@ create_menuitem(GVariant *data, StatusNotifierItem *snitem) } g_variant_unref(menu_data); - g_variant_unref(data); return menuitem; } @@ -199,8 +199,10 @@ create_menumodel(GVariant *data, StatusNotifierItem *snitem) GMenu *section = g_menu_new(); g_variant_iter_init(&iter, data); while ((g_variant_iter_next(&iter, "v", &menuitem_data))) { - if (!check_menuitem_visible(menuitem_data)) + if (!check_menuitem_visible(menuitem_data)) { + g_variant_unref(menuitem_data); continue; + } GMenuItem *menuitem = create_menuitem(menuitem_data, snitem); if (menuitem) {