diff options
author | Felix Riemann <friemann@gnome.org> | 2015-01-31 16:09:01 +0100 |
---|---|---|
committer | Felix Riemann <friemann@gnome.org> | 2015-01-31 16:09:01 +0100 |
commit | e26f5629eb11f6dc22f6172876397b809b1bad7e (patch) | |
tree | e31a5e4e7e07aff924255fb12fa6721a70ad1afd /plugins | |
parent | 44cbe596bd3e17f062dd332d04d104d563dd7577 (diff) | |
download | eog-e26f5629eb11f6dc22f6172876397b809b1bad7e.tar.gz |
reload: Fix memory leak in menu cleanup code
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/reload/eog-reload-plugin.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/plugins/reload/eog-reload-plugin.c b/plugins/reload/eog-reload-plugin.c index c391f306..5f81151c 100644 --- a/plugins/reload/eog-reload-plugin.c +++ b/plugins/reload/eog-reload-plugin.c @@ -173,7 +173,6 @@ eog_reload_plugin_deactivate (EogWindowActivatable *activatable) EogReloadPlugin *plugin = EOG_RELOAD_PLUGIN (activatable); GMenu *menu; GMenuModel *model; - const gchar *id; gint i; eog_debug (DEBUG_PLUGINS); @@ -186,11 +185,16 @@ eog_reload_plugin_deactivate (EogWindowActivatable *activatable) /* Remove menu entry */ model = G_MENU_MODEL (menu); for (i = 0; i < g_menu_model_get_n_items (model); i++) { - if (g_menu_model_get_item_attribute (model, i, "id", "s", &id) - && g_strcmp0 (id, EOG_RELOAD_PLUGIN_MENU_ID) == 0) - { - g_menu_remove (menu, i); - break; + gchar *id; + if (g_menu_model_get_item_attribute (model, i, "id", "s", &id)) { + const gboolean found = + (g_strcmp0 (id, EOG_RELOAD_PLUGIN_MENU_ID) != 0); + g_free (id); + + if (found) { + g_menu_remove (menu, i); + break; + } } } |