diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2009-03-26 17:09:53 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2009-03-26 17:09:53 +0200 |
commit | e4c22d3686da0e973e21eae0561c1169c0eeff36 (patch) | |
tree | 0a49e9167edc88938b0287949080931314e8afea /libxsde/xsde/cxx/serializer/map.cxx | |
parent | 0d62005a3ff3b62d02c2eb3fd8644e0e19b202e8 (diff) |
Implement support for XML Schema polymorphism in C++/Hybrid
examples/cxx/hybrid/polyroot/
examples/cxx/hybrid/polymorphism/: new examples
tests/cxx/hybrid/polymorphism/: new tests
Diffstat (limited to 'libxsde/xsde/cxx/serializer/map.cxx')
-rw-r--r-- | libxsde/xsde/cxx/serializer/map.cxx | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/libxsde/xsde/cxx/serializer/map.cxx b/libxsde/xsde/cxx/serializer/map.cxx index 1ace4ac..f3c88f6 100644 --- a/libxsde/xsde/cxx/serializer/map.cxx +++ b/libxsde/xsde/cxx/serializer/map.cxx @@ -23,12 +23,20 @@ namespace xsde void serializer_map_impl:: reset () const { + if (resetting_) + return; + + bool& r = const_cast<bool&> (resetting_); + r = true; + for (hashmap::const_iterator i (map_.begin ()), e (map_.end ()); i != e; ++i) { serializer_base* s = *static_cast<serializer_base* const*> (*i); s->_reset (); } + + r = false; } } } |