From 6e7da987b443c861946a7702d64f9e50150b9320 Mon Sep 17 00:00:00 2001 From: Ryan Lortie Date: Thu, 22 Dec 2011 00:24:20 -0500 Subject: [PATCH] GSettingsBackend: allow floating refs from read() Use g_variant_take_ref() to allow for backends to return floating GVariant instances from their read() implementations. --- gio/gsettingsbackend.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gio/gsettingsbackend.c b/gio/gsettingsbackend.c index 6ea88d2..6075d7f 100644 --- a/gio/gsettingsbackend.c +++ b/gio/gsettingsbackend.c @@ -733,6 +733,9 @@ g_settings_backend_read (GSettingsBackend *backend, value = G_SETTINGS_BACKEND_GET_CLASS (backend) ->read (backend, key, expected_type, default_value); + if (value != NULL) + value = g_variant_take_ref (value); + if G_UNLIKELY (value && !g_variant_is_of_type (value, expected_type)) { g_variant_unref (value); -- 2.7.4