From c9571a2692f7099946e41334119eba0eb0e3b59d Mon Sep 17 00:00:00 2001 From: JoelKatz Date: Tue, 15 May 2012 13:30:30 -0700 Subject: [PATCH] Fix a case where we don't create a stub for a non-present field. --- src/SerializedObject.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/SerializedObject.cpp b/src/SerializedObject.cpp index 3818ded576..871b4862fb 100644 --- a/src/SerializedObject.cpp +++ b/src/SerializedObject.cpp @@ -107,12 +107,20 @@ STObject::STObject(SOElement* elem, SerializerIterator& sit, const char *name) : if (elem->e_type == SOE_IFFLAG) { assert(flags >= 0); - if ((flags&elem->e_flags) == 0) done = true; + if ((flags&elem->e_flags) == 0) + { + done = true; + giveObject(new SerializedType(elem->e_name)); + } } else if (elem->e_type == SOE_IFNFLAG) { assert(flags >= 0); - if ((flags&elem->e_flags) != 0) done = true; + if ((flags&elem->e_flags) != 0) + { + done = true; + giveObject(new SerializedType(elem->e_name)); + } } else if (elem->e_type == SOE_FLAGS) { @@ -141,12 +149,14 @@ std::string STObject::getFullText() const ret += " = {"; } else ret = "{"; + for (boost::ptr_vector::const_iterator it = mData.begin(), end = mData.end(); it != end; ++it) { if (!first) ret += ", "; else first = false; ret += it->getFullText(); } + ret += "}"; return ret; }