summaryrefslogtreecommitdiff
path: root/indra/llcommon
diff options
context:
space:
mode:
Diffstat (limited to 'indra/llcommon')
-rw-r--r--indra/llcommon/llinstancetracker.h25
1 files changed, 25 insertions, 0 deletions
diff --git a/indra/llcommon/llinstancetracker.h b/indra/llcommon/llinstancetracker.h
index 47041f790f..78a67653c8 100644
--- a/indra/llcommon/llinstancetracker.h
+++ b/indra/llcommon/llinstancetracker.h
@@ -56,6 +56,8 @@ public:
class instance_iter : public boost::iterator_facade<instance_iter, T, boost::forward_traversal_tag>
{
public:
+ typedef boost::iterator_facade<instance_iter, T, boost::forward_traversal_tag> super_t;
+
instance_iter(typename InstanceMap::iterator& it)
: mIterator(it)
{
@@ -67,6 +69,13 @@ public:
--sIterationNestDepth;
}
+ instance_iter& operator =(const instance_iter& other)
+ {
+ mIterator = other.mIterator;
+ ++sIterationNestDepth;
+ super_t::operator=(other);
+ }
+
private:
friend class boost::iterator_core_access;
@@ -87,17 +96,33 @@ 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& operator =(const key_iter& other)
+ {
+ mIterator = other.mIterator;
+ ++sIterationNestDepth;
+ super_t::operator=(other);
+ }
+
~key_iter()
{
--sIterationNestDepth;
}
+
private:
friend class boost::iterator_core_access;