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