I have a GObject.
struct _MyObject
{
gchar *foo;
};
I set a string property in my class_init with g_param_spec_string. I
set the property->cset_nth to a string of valid characters
("abc...xyz").
static void
my_object_class_init (MyObjectClass *klass)
{
GParamSpecString *pspec = g_param_spec_string ("foo", "foo", "foo",
NULL,
G_PARAM_READWRITE |
G_PARAM_CONSTRUCT);
pspec->cset_nth = g_strdup ("abcdefghijklmnopqrstuvwxyz-_");
g_object_class_install_property (object_class, PROP_FOO, pspec);
}
When I create an instance of my object with g_object_new:
MyObject *obj = g_object_new (MY_TYPE_OBJECT,
"foo", "invalid string",
NULL);
I notice that g_param_value_validate *is* being called, and does return
FALSE, but it's not setting an error; it appears to g_logs a warning
and eventually aborts. Is there any way to make that validation check
non-fatal, so I can handle the error nicely?
Also, this behavior seems contradictory to the GObject documentation on
properties: "the GValue is validated by g_param_value_validate [...] As
such, the g_object_set_property function will return with an error."
g_object_set_property returns void and does not accept a GError.Attachment:
signature.asc
Description: This is a digitally signed message part