summaryrefslogtreecommitdiff
path: root/json-glib/json-gobject.c
diff options
context:
space:
mode:
authorTristan Van Berkom <tristan.van.berkom@gmail.com>2011-05-03 00:20:12 +0900
committerTristan Van Berkom <tristan.van.berkom@gmail.com>2011-05-03 00:20:12 +0900
commitd3db7acc1f53491b6dd9637991a1eaf8bb5c5002 (patch)
treef5eeb436fb7502254c4feb6df1dcf54e1bd193f5 /json-glib/json-gobject.c
parent9824a32a803bd194208d460068ce5ba91d776686 (diff)
downloadjson-glib-d3db7acc1f53491b6dd9637991a1eaf8bb5c5002.tar.gz
Fixed json_deserialize_pspec() to handle null nodes.
This fixes deserialization to match serialization (bug 648539)
Diffstat (limited to 'json-glib/json-gobject.c')
-rw-r--r--json-glib/json-gobject.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/json-glib/json-gobject.c b/json-glib/json-gobject.c
index dfa4058..a653712 100644
--- a/json-glib/json-gobject.c
+++ b/json-glib/json-gobject.c
@@ -565,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;
}