Allow only format strings that copy all values (i.e, don't contain '&'),
as the returned pointers might become invalid in some rare cases.
Since this is technically an API break, this patch only prints a
critical when a faulty format string is detected, but still fetches the
values.
https://bugzilla.gnome.org/show_bug.cgi?id=719979
value = g_settings_get_value (settings, key);
+ if (!g_variant_check_format_string (value, format, TRUE))
+ {
+ g_critical ("%s: invalid format string for key '%s' from schema '%s'. "
+ "This call will probably stop working with a future version of glib.",
+ G_STRFUNC, key, g_settings_schema_get_id (settings->priv->schema));
+ }
+
va_start (ap, format);
g_variant_get_va (value, format, NULL, &ap);
va_end (ap);