[dconf] fixup errors with writable-checking on merge



commit 649c299b9d18559fc11a90fc6c1ff7b686bea240
Author: Ryan Lortie <desrt desrt ca>
Date:   Tue Oct 6 00:30:17 2009 -0400

    fixup errors with writable-checking on merge

 dconf/dconf-core.c   |    2 +-
 dconf/dconf-reader.c |   20 +++++++-------------
 2 files changed, 8 insertions(+), 14 deletions(-)
---
diff --git a/dconf/dconf-core.c b/dconf/dconf-core.c
index 660fcb8..58b980e 100644
--- a/dconf/dconf-core.c
+++ b/dconf/dconf-core.c
@@ -333,7 +333,7 @@ dconf_check_tree_writable (DConfMount   *mount,
   const_items = (const gchar * const *) items;
 
   {
-    gchar **ptr;
+    gchar **ptr = items;
     g_tree_foreach (tree, append_to_array, &ptr);
     *ptr = NULL;
   }
diff --git a/dconf/dconf-reader.c b/dconf/dconf-reader.c
index 2daece8..814784c 100644
--- a/dconf/dconf-reader.c
+++ b/dconf/dconf-reader.c
@@ -430,29 +430,23 @@ dconf_reader_get_locked (DConfReader *reader,
 
 gboolean
 dconf_reader_get_several_writable (DConfReader         *reader,
-                                   const gchar         *name,
+                                   const gchar         *prefix,
                                    const gchar * const *items)
 {
   const volatile struct dir_entry *entry;
   gboolean locked = FALSE;
 
   if (!dconf_reader_ensure_valid (reader))
-    return FALSE;
+    return TRUE;
 
-  entry = dconf_reader_get_entry (reader, name,
+  entry = dconf_reader_get_entry (reader, prefix,
                                   reader->data.super->root_index,
                                   &locked);
 
-  if (items[0][0] == '\0')
-    {
-      g_assert (items[1] == NULL);
-
-      return !locked;
-    }
-
-  /* not *the* most efficient way possible, but simple. */
-  while (!locked && *items != NULL)
-    dconf_reader_get_entry (reader, *items++, entry->data.index, &locked);
+  if (entry != NULL && items[0][0] != '\0')
+    /* not *the* most efficient way possible, but simple. */
+    while (!locked && *items != NULL)
+      dconf_reader_get_entry (reader, *items++, entry->data.index, &locked);
 
   return !locked;
 }



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