diff options
Diffstat (limited to 'indra')
| -rw-r--r-- | indra/llcommon/llinstancetracker.h | 25 | 
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;  | 
