GSettings: fix mixed use of a pointer
authorRyan Lortie <desrt@desrt.ca>
Sun, 2 May 2010 19:14:30 +0000 (14:14 -0500)
committerRyan Lortie <desrt@desrt.ca>
Sun, 2 May 2010 19:15:33 +0000 (14:15 -0500)
  - used in some places as a move-along-as-we-go pointer
  - used in other places as a pointer to the fixed base of an array

Switch all users to the first style to avoid a crasher.

gio/gsettingsbackend.c

index a4e1cbe..b5699b4 100644 (file)
@@ -453,7 +453,6 @@ g_settings_backend_flatten_tree (GTree         *tree,
 {
   FlattenState state = { 0, };
   gsize nnodes;
-  gsize i;
 
   nnodes = g_tree_nnodes (tree);
 
@@ -470,8 +469,8 @@ g_settings_backend_flatten_tree (GTree         *tree,
   g_return_if_fail (*keys + nnodes == state.keys);
 
   *path = state.prefix;
-  for (i = 0; i < nnodes; i++)
-    state.keys[i] += state.prefix_len;
+  while (nnodes--)
+    *--state.keys += state.prefix_len;
 }
 
 /**