[glib/wip/gsettings-list] Make the memory backend build again
- From: Rodrigo Moya <rodrigo src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glib/wip/gsettings-list] Make the memory backend build again
- Date: Thu, 4 Nov 2010 12:19:14 +0000 (UTC)
commit bc39aa32692b5b71e6b005e415d49527c67af5ca
Author: Rodrigo Moya <rodrigo gnome-db org>
Date: Thu Oct 28 16:30:22 2010 +0200
Make the memory backend build again
gio/gmemorysettingsbackend.c | 23 ++++++++++++-----------
1 files changed, 12 insertions(+), 11 deletions(-)
---
diff --git a/gio/gmemorysettingsbackend.c b/gio/gmemorysettingsbackend.c
index 50c2f41..48859e1 100644
--- a/gio/gmemorysettingsbackend.c
+++ b/gio/gmemorysettingsbackend.c
@@ -44,7 +44,7 @@ table_pair_free (gpointer data)
TablePair *pair = data;
g_hash_table_unref (pair->values);
- g_hash_table_unref (pair->list);
+ g_hash_table_unref (pair->lists);
}
static TablePair *
@@ -53,10 +53,10 @@ table_pair_new (void)
TablePair *pair;
pair = g_slice_new (TablePair);
- pair->values = g_hash_table_new (g_str_hash, g_str_equal, g_free,
- (GDestroyNotify) g_variant_unref);
- pair->lists = g_hash_table_new (g_str_hash, g_str_equal, g_free,
- (GDestroyNotify) g_hash_table_unref);
+ pair->values = g_hash_table_new_full (g_str_hash, g_str_equal, g_free,
+ (GDestroyNotify) g_variant_unref);
+ pair->lists = g_hash_table_new_full (g_str_hash, g_str_equal, g_free,
+ (GDestroyNotify) g_hash_table_unref);
return pair;
}
@@ -68,6 +68,7 @@ typedef struct
{
GSettingsBackend parent_instance;
TablePair *root;
+ GHashTable *table;
} GMemorySettingsBackend;
G_DEFINE_TYPE_WITH_CODE (GMemorySettingsBackend,
@@ -126,14 +127,14 @@ g_memory_settings_backend_get_table (GHashTable *table,
if (!g_hash_table_lookup_extended (table, prefix, NULL, &value))
g_hash_table_insert (table, prefix,
value = g_hash_table_new_full (g_str_hash, g_str_equal,
- g_free, g_hash_table_unref));
+ g_free, (GDestroyNotify) g_hash_table_unref));
table = value;
if (!g_hash_table_lookup_extended (table, prefix, NULL, &value))
g_hash_table_insert (table, prefix,
value = g_hash_table_new_full (g_str_hash, g_str_equal,
- g_free, g_hash_table_unref));
+ g_free, (GDestroyNotify) g_hash_table_unref));
}
if (key[i] == ':' && key[i + 1] == '/')
@@ -144,15 +145,15 @@ g_memory_settings_backend_get_table (GHashTable *table,
i += 2;
- for (j = i; (*key)[j] != '/'; j++)
+ for (j = i; key[j] != '/'; j++)
/* found a path of the form /a:/b
* which is never a valid spot for a key.
*/
- if ((*key)[j] == '\0')
+ if (key[j] == '\0')
return NULL;
- name = g_strndup (*key + i, j - i);
- prefix = g_strndup (*key, i);
+ name = g_strndup ((const gchar *) key + i, j - i);
+ prefix = g_strndup (key, i);
table = g_hash_table_lookup (table, prefix);
g_free (prefix);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]