[glib] Fix a refcounting error



commit 8852d4e9a08e7fbc9df7fb99a54b112f5049ee19
Author: Matthias Clasen <mclasen redhat com>
Date:   Fri Jan 20 08:02:26 2012 -0500

    Fix a refcounting error
    
    'new' is created floating, therefore it is consumed by
    g_settings_set, and unreffing it after that call is not right.

 gio/gsettings-tool.c |    3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)
---
diff --git a/gio/gsettings-tool.c b/gio/gsettings-tool.c
index e84eb35..993fa59 100644
--- a/gio/gsettings-tool.c
+++ b/gio/gsettings-tool.c
@@ -457,6 +457,7 @@ gsettings_set (GSettings   *settings,
 
   existing = g_settings_get_value (settings, key);
   type = g_variant_get_type (existing);
+  g_variant_unref (existing);
 
   new = g_variant_parse (type, value, NULL, NULL, &error);
 
@@ -503,8 +504,6 @@ gsettings_set (GSettings   *settings,
     }
 
   g_settings_set_value (settings, key, new);
-  g_variant_unref (existing);
-  g_variant_unref (new);
 
   g_settings_sync ();
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]