diff options
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; } } } |