Index: compiled/Map.h |
=================================================================== |
--- a/compiled/Map.h |
+++ b/compiled/Map.h |
@@ -39,17 +39,17 @@ |
typedef HashContainerIterator<Entry> iterator; |
const entry_type* mPos; |
const entry_type* mEnd; |
explicit HashContainerIterator(const entry_type* start, const entry_type* end) |
: mPos(start), mEnd(end) |
{ |
- if (mPos != mEnd && mPos->is_invalid()) |
+ if (mPos != mEnd && (mPos->is_invalid() || mPos->is_deleted())) |
++(*this); |
} |
const entry_type& operator*() const |
{ |
return *mPos; |
} |
@@ -57,17 +57,17 @@ |
{ |
return mPos; |
} |
iterator& operator++() |
{ |
do { |
++mPos; |
- } while(mPos != mEnd && mPos->is_invalid()); |
+ } while(mPos != mEnd && (mPos->is_invalid() || mPos->is_deleted())); |
return *this; |
} |
bool operator==(const iterator& it) const |
{ |
return mPos == it.mPos; |
} |
@@ -91,17 +91,17 @@ |
const entry_type* operator->() const |
{ |
return mEntry; |
} |
operator bool() const |
{ |
- return !mEntry->is_invalid(); |
+ return !(mEntry->is_invalid() || mEntry->is_deleted()); |
} |
}; |
template<typename Entry> |
class HashContainer |
{ |
public: |
typedef Entry entry_type; |
@@ -340,9 +340,9 @@ |
} |
reference find(key_type_cref key) |
{ |
return reference(this, key, super::find_bucket(key)); |
} |
}; |
-ABP_NS_END |
+ABP_NS_END |