[json-glib] gobject: Do not serialize default values



commit e3b5883d4435da7fe677eb9a7c74d2f83980f5da
Author: Emmanuele Bassi <ebassi linux intel com>
Date:   Wed Jun 1 12:49:28 2011 +0100

    gobject: Do not serialize default values
    
    If a property is set to its default value then we can skip its
    serialization, to keep the number of JSON object members down.

 json-glib/json-gobject.c |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)
---
diff --git a/json-glib/json-gobject.c b/json-glib/json-gobject.c
index fb97bd4..fbc6efc 100644
--- a/json-glib/json-gobject.c
+++ b/json-glib/json-gobject.c
@@ -398,6 +398,13 @@ json_gobject_dump (GObject *gobject)
       else
         g_object_get_property (gobject, pspec->name, &value);
 
+      /* skip if the value is the default for the property */
+      if (g_param_value_defaults (pspec, &value))
+        {
+          g_value_unset (&value);
+          continue;
+        }
+
       /* 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



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]