summaryrefslogtreecommitdiff
path: root/indra/llcommon/lldarray.h
diff options
context:
space:
mode:
authorTess Chu <tess@lindenlab.com>2007-07-11 21:29:02 +0000
committerTess Chu <tess@lindenlab.com>2007-07-11 21:29:02 +0000
commit57b8fef824b6d7f37c5be5812ebffa39ab2e8093 (patch)
treef89014544fc276b283a36eb2e0cb52e93806a44a /indra/llcommon/lldarray.h
parenta6769f262ff910949a7e1c81cf98e52ddfc2d44a (diff)
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.
Diffstat (limited to 'indra/llcommon/lldarray.h')
-rw-r--r--indra/llcommon/lldarray.h19
1 files changed, 16 insertions, 3 deletions
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<Key, U32>::iterator iter = mIndexMap.find(k);
+ typename std::map<Key, U32>::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<Key, U32>::const_iterator iter = mIndexMap.find(k);
+ if(iter == mIndexMap.end())
+ {
+ return mVector.end();
+ }
+ else
+ {
+ return mVector.begin() + iter->second;
+ }
+ }
};
#endif