From 1aa8043ce4334bd6344b36a26d8604b085930c95 Mon Sep 17 00:00:00 2001 From: Diego Escalante Urrelo Date: Sun, 10 Oct 2010 18:11:06 -0500 Subject: ephy-extensions-manager: improve toggle load code g_variant_builder_end is not needed after using the builder with g_settings_set. Bug #631839 --- src/ephy-extensions-manager.c | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) (limited to 'src/ephy-extensions-manager.c') diff --git a/src/ephy-extensions-manager.c b/src/ephy-extensions-manager.c index df06b97dd..850de7fa0 100644 --- a/src/ephy-extensions-manager.c +++ b/src/ephy-extensions-manager.c @@ -114,8 +114,8 @@ ephy_extensions_manager_toggle_load (EphyExtensionsManager *manager, { char **exts; GVariantBuilder builder; - gboolean dirty = FALSE; int i; + gboolean found = FALSE; g_return_if_fail (EPHY_IS_EXTENSIONS_MANAGER (manager)); g_return_if_fail (identifier != NULL); @@ -131,24 +131,23 @@ ephy_extensions_manager_toggle_load (EphyExtensionsManager *manager, g_variant_builder_init (&builder, G_VARIANT_TYPE_STRING_ARRAY); for (i = 0; exts[i]; i++) { + /* Ignore the extension if we are removing it. */ if (g_strcmp0 (exts[i], identifier) == 0) { - dirty = TRUE; - if (status) - break; - else + found = TRUE; + if (!status) continue; } g_variant_builder_add (&builder, "s", exts[i]); } - if (!dirty) - g_settings_set (EPHY_SETTINGS_MAIN, - EPHY_PREFS_ENABLED_EXTENSIONS, - "as", &builder); + if (status && !found) + g_variant_builder_add (&builder, "s", identifier); - g_variant_builder_end (&builder); + g_settings_set (EPHY_SETTINGS_MAIN, + EPHY_PREFS_ENABLED_EXTENSIONS, + "as", &builder); } /** -- cgit v1.2.3