diff options
author | Chun-wei Fan <fanchunwei@src.gnome.org> | 2011-05-04 01:47:14 +0800 |
---|---|---|
committer | Chun-wei Fan <fanchunwei@src.gnome.org> | 2011-05-04 01:47:14 +0800 |
commit | 595bdd9cc160f10edefb9e54f45cb4727f39ac24 (patch) | |
tree | 32217a6a77c48d96f61fafc11aedf31b27199cd7 /json-glib/json-gobject.c | |
parent | 46a8e576f2fae9563219fcd72a9866826e684559 (diff) | |
parent | d3db7acc1f53491b6dd9637991a1eaf8bb5c5002 (diff) | |
download | json-glib-msvc-patch.tar.gz |
Merge branch 'master' into msvc-patchmsvc-patch
Diffstat (limited to 'json-glib/json-gobject.c')
-rw-r--r-- | json-glib/json-gobject.c | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/json-glib/json-gobject.c b/json-glib/json-gobject.c index 5742188..a653712 100644 --- a/json-glib/json-gobject.c +++ b/json-glib/json-gobject.c @@ -324,6 +324,9 @@ json_gobject_new (GType gtype, g_type_name (G_VALUE_TYPE (&value))); g_object_set_property (retval, pspec->name, &value); } + else + g_warning ("Failed to deserialize \"%s\" property of type \"%s\" for an object of type \"%s\"", + pspec->name, g_type_name (G_VALUE_TYPE (&value)), g_type_name (gtype)); g_value_unset (&value); } @@ -562,7 +565,19 @@ json_deserialize_pspec (GValue *value, break; case JSON_NODE_NULL: - retval = FALSE; + if (G_TYPE_FUNDAMENTAL (G_VALUE_TYPE (value)) == G_TYPE_STRING) + { + g_value_set_string (value, NULL); + retval = TRUE; + } + else if (G_TYPE_FUNDAMENTAL (G_VALUE_TYPE (value)) == G_TYPE_OBJECT) + { + g_value_set_object (value, NULL); + retval = TRUE; + } + else + retval = FALSE; + break; } |