summaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
authorFelix Riemann <friemann@gnome.org>2015-01-31 16:09:01 +0100
committerFelix Riemann <friemann@gnome.org>2015-01-31 16:09:01 +0100
commite26f5629eb11f6dc22f6172876397b809b1bad7e (patch)
treee31a5e4e7e07aff924255fb12fa6721a70ad1afd /plugins
parent44cbe596bd3e17f062dd332d04d104d563dd7577 (diff)
downloadeog-e26f5629eb11f6dc22f6172876397b809b1bad7e.tar.gz
reload: Fix memory leak in menu cleanup code
Diffstat (limited to 'plugins')
-rw-r--r--plugins/reload/eog-reload-plugin.c16
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;
+ }
}
}