[json-glib] serializable: Make Serializable in charge of parsing
- From: Emmanuele Bassi <ebassi src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [json-glib] serializable: Make Serializable in charge of parsing
- Date: Mon, 23 Nov 2009 22:26:45 +0000 (UTC)
commit 61d54cc9e2a3098e876e700a9248428f400a5368
Author: Tristan Van Berkom <tristan van berkom gmail com>
Date: Thu Nov 12 12:59:03 2009 +0000
serializable: Make Serializable in charge of parsing
If a GObject class implements JsonSerializable and has overridden
the serialize_property() vfunc then the Serializable should be fully in
charge of serializing a property - that is: JSON-GLib should not try to
add a fallback in case the serialize_property() implementation returned
NULL.
This is a change in semantics for JsonSerializable implementations.
http://bugzilla.openedhand.com/show_bug.cgi?id=1859
Signed-off-by: Emmanuele Bassi <ebassi linux intel com>
json-glib/json-gobject.c | 7 +++++--
1 files changed, 5 insertions(+), 2 deletions(-)
---
diff --git a/json-glib/json-gobject.c b/json-glib/json-gobject.c
index a9ecfe7..574ff38 100644
--- a/json-glib/json-gobject.c
+++ b/json-glib/json-gobject.c
@@ -360,14 +360,17 @@ json_gobject_dump (GObject *gobject)
g_value_init (&value, G_PARAM_SPEC_VALUE_TYPE (pspec));
g_object_get_property (gobject, pspec->name, &value);
+ /* if there is a serialization vfunc, then it is completely responsible
+ * for serializing the property, possibly by calling the implementation
+ * of the default JsonSerializable interface through chaining up
+ */
if (serialize_property)
{
node = iface->serialize_property (serializable, pspec->name,
&value,
pspec);
}
-
- if (!node)
+ else
node = json_serialize_pspec (&value, pspec);
if (node)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]