From 57b8fef824b6d7f37c5be5812ebffa39ab2e8093 Mon Sep 17 00:00:00 2001 From: Tess Chu Date: Wed, 11 Jul 2007 21:29:02 +0000 Subject: svn merge --ignore-ancestry svn+ssh://svn/svn/linden/release@65088 svn+ssh://svn/svn/linden/branches/release-candidate@65078 -> release Paired by Tess and rdw. --- indra/llcommon/lldarray.h | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) (limited to 'indra/llcommon/lldarray.h') diff --git a/indra/llcommon/lldarray.h b/indra/llcommon/lldarray.h index c8b5b7fb14..2ebca78c98 100644 --- a/indra/llcommon/lldarray.h +++ b/indra/llcommon/lldarray.h @@ -169,16 +169,17 @@ public: void reset() { mVector.resize(0); mIndexMap.resize(0); } bool empty() const { return mVector.empty(); } - size_type size() const { return mVector.empty(); } + size_type size() const { return mVector.size(); } Type& operator[](const Key& k) { - typename std::map::iterator iter = mIndexMap.find(k); + typename std::map::const_iterator iter = mIndexMap.find(k); if (iter == mIndexMap.end()) { U32 n = mVector.size(); mIndexMap[k] = n; mVector.resize(n+1); + llassert(mVector.size() == mIndexMap.size()); return mVector[n]; } else @@ -186,7 +187,19 @@ public: return mVector[iter->second]; } } - + + const_iterator find(const Key& k) const + { + typename std::map::const_iterator iter = mIndexMap.find(k); + if(iter == mIndexMap.end()) + { + return mVector.end(); + } + else + { + return mVector.begin() + iter->second; + } + } }; #endif -- cgit v1.2.3