[glib] Report more useful errors from g_settings_set_value
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glib] Report more useful errors from g_settings_set_value
- Date: Fri, 5 Nov 2010 13:32:40 +0000 (UTC)
commit bc793255bc75300bfa96bfd842343c26af8b0744
Author: Matthias Clasen <mclasen redhat com>
Date: Fri Nov 5 09:31:36 2010 -0400
Report more useful errors from g_settings_set_value
gio/gsettings.c | 24 ++++++++++++++++++++++--
1 files changed, 22 insertions(+), 2 deletions(-)
---
diff --git a/gio/gsettings.c b/gio/gsettings.c
index 9fde642..04baac5 100644
--- a/gio/gsettings.c
+++ b/gio/gsettings.c
@@ -1458,8 +1458,28 @@ g_settings_set_value (GSettings *settings,
g_return_val_if_fail (key != NULL, FALSE);
g_settings_get_key_info (&info, settings, key);
- g_return_val_if_fail (g_settings_type_check (&info, value), FALSE);
- g_return_val_if_fail (g_settings_key_info_range_check (&info, value), FALSE);
+
+ if (!g_settings_type_check (&info, value))
+ {
+ g_critical ("g_settings_set_value: key '%s' in '%s' expects type '%s', but a GVariant of type '%s' was given",
+ key,
+ settings->priv->schema_name,
+ g_variant_type_peek_string (info.type),
+ g_variant_get_type_string (value));
+
+ return FALSE;
+ }
+
+ if (!g_settings_key_info_range_check (&info, value))
+ {
+ g_warning ("gsettings_set_value: value for key '%s' in schema '%s' "
+ "is outside of valid range",
+ key,
+ settings->priv->schema_name);
+
+ return FALSE;
+ }
+
g_settings_free_key_info (&info);
return g_settings_write_to_backend (&info, value);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]