diff options
Diffstat (limited to 'libxsde/xsde/cxx/parser/map.cxx')
-rw-r--r-- | libxsde/xsde/cxx/parser/map.cxx | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/libxsde/xsde/cxx/parser/map.cxx b/libxsde/xsde/cxx/parser/map.cxx index b21c41e..1382c8d 100644 --- a/libxsde/xsde/cxx/parser/map.cxx +++ b/libxsde/xsde/cxx/parser/map.cxx @@ -23,12 +23,20 @@ namespace xsde void parser_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) { parser_base* p = *static_cast<parser_base* const*> (*i); p->_reset (); } + + r = false; } } } |