[glib/new-gsettings] return reference on GSettingsBackend



commit bbb38cf9afe6a9e97b5d0d76b14169a62e0e19d6
Author: Ryan Lortie <desrt desrt ca>
Date:   Wed Apr 14 19:53:12 2010 -0400

    return reference on GSettingsBackend

 gio/gsettingsbackend.c |   18 +++++++++---------
 1 files changed, 9 insertions(+), 9 deletions(-)
---
diff --git a/gio/gsettingsbackend.c b/gio/gsettingsbackend.c
index 42a150c..539fee9 100644
--- a/gio/gsettingsbackend.c
+++ b/gio/gsettingsbackend.c
@@ -638,19 +638,19 @@ g_settings_backend_get_with_context (const gchar *context)
 
   backend = g_hash_table_lookup (backends, context);
 
-  if (backend)
-    return backend;
-
-  backend = get_default_backend (context);
-
   if (!backend)
     {
-      /* FIXME: create an instance of the memory backend */
-    }
+      backend = get_default_backend (context);
 
-  g_hash_table_insert (backends, g_strdup (context), backend);
+      if (!backend)
+        {
+          /* FIXME: create an instance of the memory backend */
+        }
+
+      g_hash_table_insert (backends, g_strdup (context), backend);
+    }
 
-  return backend;
+  return g_object_ref (backend);
 }
 
 /**



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