[gxml/serialization] Fixed no serialize null Serializable. Set version to 0.4.0



commit 0993e7d30e975eb94a5547ae3ca63b2b75becd34
Author: Daniel Espinosa <esodan gmail com>
Date:   Mon Nov 4 13:11:12 2013 -0600

    Fixed no serialize null Serializable. Set version to 0.4.0

 configure.ac                          |    4 ++--
 gxml/SerializableObjectModel.vala     |    3 ++-
 test/SerializableObjectModelTest.vala |    9 +++++++++
 3 files changed, 13 insertions(+), 3 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index 20e4dd7..9c65274 100644
--- a/configure.ac
+++ b/configure.ac
@@ -11,8 +11,8 @@
 
 # Release Version
 m4_define([project_major_version], [0])
-m4_define([project_minor_version], [3])
-m4_define([project_micro_version], [2])
+m4_define([project_minor_version], [4])
+m4_define([project_micro_version], [0])
 m4_define([project_nano_version], [0])
 
 # LT_VERSION
diff --git a/gxml/SerializableObjectModel.vala b/gxml/SerializableObjectModel.vala
index 078f4e1..9d6a14d 100644
--- a/gxml/SerializableObjectModel.vala
+++ b/gxml/SerializableObjectModel.vala
@@ -125,7 +125,8 @@ public abstract class GXml.SerializableObjectModel : Object, Serializable
                        var v = Value (typeof (Object));
                        get_property (prop.name, ref v);
                        var obj = (Serializable) v.get_object ();
-                       return obj.serialize (element);
+                       if (obj != null)
+                               return obj.serialize (element);
                }
                Value oval = Value (prop.value_type);
                get_property (prop.name, ref oval);
diff --git a/test/SerializableObjectModelTest.vala b/test/SerializableObjectModelTest.vala
index 4431428..a8604f3 100644
--- a/test/SerializableObjectModelTest.vala
+++ b/test/SerializableObjectModelTest.vala
@@ -245,10 +245,15 @@ class Configuration : ObjectModel
        }
 }
 
+class FakeSerializable : ObjectModel
+{
+       public string none { get; set; }
+}
 class UnknownAttribute : ObjectModel
 {
        public string name { get; set; }
        public Gee.ArrayList<int> array { get; set; }
+       public FakeSerializable fake { get; set; }
 }
 
 class SerializableObjectModelTest : GXmlTest
@@ -744,6 +749,10 @@ class SerializableObjectModelTest : GXmlTest
                                        stdout.printf (@"ERROR: NULL ATTRIBUTE SERIALIZATION: array found 
$(array.node_name)");
                                        assert_not_reached ();
                                }
+                               if (doc.document_element.has_child_nodes ()) {
+                                       stdout.printf (@"ERROR: NULL ATTRIBUTE SERIALIZATION: Nodes found 
$(doc.document_element.has_child_nodes ())");
+                                       assert_not_reached ();
+                               }
                        }
                        catch (GLib.Error e) {
                                stdout.printf (@"Error: $(e.message)");


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