aboutsummaryrefslogtreecommitdiff
path: root/libxsde/xsde/cxx/serializer/map.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'libxsde/xsde/cxx/serializer/map.cxx')
-rw-r--r--libxsde/xsde/cxx/serializer/map.cxx8
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;
}
}
}