diff options
Diffstat (limited to 'indra/llcommon/llinstancetracker.h')
-rw-r--r-- | indra/llcommon/llinstancetracker.h | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/indra/llcommon/llinstancetracker.h b/indra/llcommon/llinstancetracker.h index 47041f790f..b4891eba67 100644 --- a/indra/llcommon/llinstancetracker.h +++ b/indra/llcommon/llinstancetracker.h @@ -56,7 +56,9 @@ public: class instance_iter : public boost::iterator_facade<instance_iter, T, boost::forward_traversal_tag> { public: - instance_iter(typename InstanceMap::iterator& it) + typedef boost::iterator_facade<instance_iter, T, boost::forward_traversal_tag> super_t; + + instance_iter(const typename InstanceMap::iterator& it) : mIterator(it) { ++sIterationNestDepth; @@ -67,6 +69,7 @@ public: --sIterationNestDepth; } + private: friend class boost::iterator_core_access; @@ -87,17 +90,26 @@ public: class key_iter : public boost::iterator_facade<key_iter, KEY, boost::forward_traversal_tag> { public: + typedef boost::iterator_facade<key_iter, KEY, boost::forward_traversal_tag> super_t; + key_iter(typename InstanceMap::iterator& it) : mIterator(it) { ++sIterationNestDepth; } + key_iter(const key_iter& other) + : mIterator(other.mIterator) + { + ++sIterationNestDepth; + } + ~key_iter() { --sIterationNestDepth; } + private: friend class boost::iterator_core_access; @@ -198,7 +210,7 @@ public: class instance_iter : public boost::iterator_facade<instance_iter, T, boost::forward_traversal_tag> { public: - instance_iter(typename InstanceSet::iterator& it) + instance_iter(const typename InstanceSet::iterator& it) : mIterator(it) { ++sIterationNestDepth; |