diff --git a/gio/gsettings.c b/gio/gsettings.c index 2934f2b4b..dd8f94485 100644 --- a/gio/gsettings.c +++ b/gio/gsettings.c @@ -1137,6 +1137,8 @@ g_settings_new_full (GSettingsSchema *schema, } /* Internal read/write utilities {{{1 */ + +/* @value will be sunk */ static gboolean g_settings_write_to_backend (GSettings *settings, GSettingsSchemaKey *key, @@ -1417,7 +1419,7 @@ g_settings_set_enum (GSettings *settings, return FALSE; } - success = g_settings_write_to_backend (settings, &skey, variant); + success = g_settings_write_to_backend (settings, &skey, g_steal_pointer (&variant)); g_settings_schema_key_clear (&skey); return success; @@ -1528,7 +1530,7 @@ g_settings_set_flags (GSettings *settings, return FALSE; } - success = g_settings_write_to_backend (settings, &skey, variant); + success = g_settings_write_to_backend (settings, &skey, g_steal_pointer (&variant)); g_settings_schema_key_clear (&skey); return success; @@ -1672,7 +1674,7 @@ g_settings_set (GSettings *settings, value = g_variant_new_va (format, NULL, &ap); va_end (ap); - return g_settings_set_value (settings, key, value); + return g_settings_set_value (settings, key, g_steal_pointer (&value)); } /** diff --git a/gio/gsettingsbackend.c b/gio/gsettingsbackend.c index edc4ff4d3..ca9b908a5 100644 --- a/gio/gsettingsbackend.c +++ b/gio/gsettingsbackend.c @@ -777,6 +777,8 @@ g_settings_backend_read_user_value (GSettingsBackend *backend, * to indicate that the affected keys have suddenly "changed back" to their * old values. * + * If @value has a floating reference, it will be sunk. + * * Returns: %TRUE if the write succeeded, %FALSE if the key was not writable */ gboolean diff --git a/gio/gsettingsschema.c b/gio/gsettingsschema.c index 38c9d78b9..60b3fe0b3 100644 --- a/gio/gsettingsschema.c +++ b/gio/gsettingsschema.c @@ -1472,6 +1472,7 @@ g_settings_schema_key_to_enum (GSettingsSchemaKey *key, return result; } +/* Returns a new floating #GVariant. */ GVariant * g_settings_schema_key_from_enum (GSettingsSchemaKey *key, gint value) @@ -1511,6 +1512,7 @@ g_settings_schema_key_to_flags (GSettingsSchemaKey *key, return result; } +/* Returns a new floating #GVariant. */ GVariant * g_settings_schema_key_from_flags (GSettingsSchemaKey *key, guint value)