From a38c97af519caa928a7d61af79c323a4ee2d8dfe Mon Sep 17 00:00:00 2001 From: Ryan Lortie Date: Sat, 7 May 2011 11:41:19 +0200 Subject: [PATCH] Allow NULL to be stored into GSettings trees This is used for resets (in theory) and currently it crashes when freeing the tree. --- gio/gsettingsbackend.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/gio/gsettingsbackend.c b/gio/gsettingsbackend.c index 553eda037..ef2c70ea9 100644 --- a/gio/gsettingsbackend.c +++ b/gio/gsettingsbackend.c @@ -918,6 +918,13 @@ g_settings_backend_class_init (GSettingsBackendClass *class) g_type_class_add_private (class, sizeof (GSettingsBackendPrivate)); } +static void +g_settings_backend_variant_unref0 (gpointer data) +{ + if (data != NULL) + g_variant_unref (data); +} + /*< private > * g_settings_backend_create_tree: * @returns: a new #GTree @@ -930,7 +937,7 @@ GTree * g_settings_backend_create_tree (void) { return g_tree_new_full ((GCompareDataFunc) strcmp, NULL, - g_free, (GDestroyNotify) g_variant_unref); + g_free, g_settings_backend_variant_unref0); } /**