From: Ryan Lortie Date: Thu, 22 Dec 2011 05:24:20 +0000 (-0500) Subject: GSettingsBackend: allow floating refs from read() X-Git-Tag: 2.31.8~78 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=6e7da987b443c861946a7702d64f9e50150b9320;p=platform%2Fupstream%2Fglib.git GSettingsBackend: allow floating refs from read() Use g_variant_take_ref() to allow for backends to return floating GVariant instances from their read() implementations. --- 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);