Index: Source/wtf/HashTable.h |
diff --git a/Source/wtf/HashTable.h b/Source/wtf/HashTable.h |
index e5f01acd4227d5939f1ec53e7e8c245a71bdcc06..0d55681e684b3aaa50e48be368e64d2bf5f5ba06 100644 |
--- a/Source/wtf/HashTable.h |
+++ b/Source/wtf/HashTable.h |
@@ -206,9 +206,9 @@ namespace WTF { |
template<typename T, typename U> static void translate(T& location, const U&, const T& value) { location = value; } |
}; |
- template<typename IteratorType> struct HashTableAddResult { |
- HashTableAddResult(IteratorType iter, bool isNewEntry) : iterator(iter), isNewEntry(isNewEntry) { } |
- IteratorType iterator; |
+ template<typename ValueType> struct HashTableAddResult { |
+ HashTableAddResult(ValueType* iterator, bool isNewEntry) : iterator(iterator), isNewEntry(isNewEntry) { } |
Erik Corry
2014/02/04 14:27:15
If this is no longer an iterator, should it be cal
eseidel
2014/02/05 22:17:20
No. :) But presumably Daniel did this to minimize
|
+ ValueType* iterator; |
bool isNewEntry; |
}; |
@@ -231,7 +231,7 @@ namespace WTF { |
typedef Value ValueType; |
typedef typename Traits::PeekInType ValuePeekInType; |
typedef IdentityHashTranslator<HashFunctions> IdentityTranslatorType; |
- typedef HashTableAddResult<iterator> AddResult; |
+ typedef HashTableAddResult<ValueType> AddResult; |
#if DUMP_HASHTABLE_STATS_PER_TABLE |
struct Stats { |
@@ -688,7 +688,7 @@ namespace WTF { |
break; |
if (HashTranslator::equal(Extractor::extract(*entry), key)) |
- return AddResult(makeKnownGoodIterator(entry), false); |
+ return AddResult(entry, false); |
if (isDeletedBucket(*entry)) |
deletedEntry = entry; |
@@ -699,7 +699,7 @@ namespace WTF { |
if (isDeletedBucket(*entry)) |
deletedEntry = entry; |
else if (HashTranslator::equal(Extractor::extract(*entry), key)) |
- return AddResult(makeKnownGoodIterator(entry), false); |
+ return AddResult(entry, false); |
} |
#if DUMP_HASHTABLE_STATS |
++probeCount; |
@@ -732,12 +732,14 @@ namespace WTF { |
// follow a pivot entry and return the new position. |
typename WTF::RemoveReference<KeyPassInType>::Type enteredKey = Extractor::extract(*entry); |
expand(); |
- AddResult result(find(enteredKey), true); |
- ASSERT(result.iterator != end()); |
+ iterator findResult = find(enteredKey); |
+ ASSERT(findResult != end()); |
+ ValueType* resultValue = findResult.get(); |
+ AddResult result(resultValue, true); |
return result; |
} |
- return AddResult(makeKnownGoodIterator(entry), true); |
+ return AddResult(entry, true); |
} |
template<typename Key, typename Value, typename Extractor, typename HashFunctions, typename Traits, typename KeyTraits, typename Allocator> |
@@ -754,7 +756,7 @@ namespace WTF { |
unsigned h = lookupResult.second; |
if (found) |
- return AddResult(makeKnownGoodIterator(entry), false); |
+ return AddResult(entry, false); |
if (isDeletedBucket(*entry)) { |
initializeBucket(*entry); |
@@ -769,12 +771,14 @@ namespace WTF { |
// follow a pivot entry and return the new position. |
typename WTF::RemoveReference<KeyPassInType>::Type enteredKey = Extractor::extract(*entry); |
expand(); |
- AddResult result(find(enteredKey), true); |
- ASSERT(result.iterator != end()); |
+ iterator findResult = find(enteredKey); |
+ ASSERT(findResult != end()); |
+ ValueType* resultValue = findResult.get(); |
+ AddResult result(resultValue, true); |
return result; |
} |
- return AddResult(makeKnownGoodIterator(entry), true); |
+ return AddResult(entry, true); |
} |
template<typename Key, typename Value, typename Extractor, typename HashFunctions, typename Traits, typename KeyTraits, typename Allocator> |