Index: runtime/vm/hash_map.h |
diff --git a/runtime/vm/hash_map.h b/runtime/vm/hash_map.h |
index 6526acaf5c6b81f5c065e78ca06a10ceea543c2f..5aa5343b33994636b1af4b355d74455d746781d9 100644 |
--- a/runtime/vm/hash_map.h |
+++ b/runtime/vm/hash_map.h |
@@ -33,7 +33,6 @@ class BaseDirectChainedHashMap : public B { |
} |
void Insert(typename KeyValueTrait::Pair kv); |
- bool Remove(typename KeyValueTrait::Key key); |
typename KeyValueTrait::Value LookupValue( |
typename KeyValueTrait::Key key) const; |
@@ -309,68 +308,6 @@ void BaseDirectChainedHashMap<KeyValueTrait, B, Allocator>::Insert( |
} |
-template <typename KeyValueTrait, typename B, typename Allocator> |
-bool BaseDirectChainedHashMap<KeyValueTrait, B, Allocator>::Remove( |
- typename KeyValueTrait::Key key) { |
- uword pos = Bound(static_cast<uword>(KeyValueTrait::Hashcode(key))); |
- |
- // Check to see if the first element in the bucket is the one we want to |
- // remove. |
- if (KeyValueTrait::KeyOf(array_[pos].kv) == key) { |
- if (array_[pos].next == kNil) { |
- array_[pos] = HashMapListElement(); |
- } else { |
- intptr_t next = array_[pos].next; |
- array_[pos] = lists_[next]; |
- lists_[next] = HashMapListElement(); |
- lists_[next].next = free_list_head_; |
- free_list_head_ = next; |
- } |
- count_--; |
- return true; |
- } |
- |
- intptr_t current = array_[pos].next; |
- |
- // If there's only the single element in the bucket and it does not match the |
- // key to be removed, just return. |
- if (current == kNil) { |
- return false; |
- } |
- |
- // Check the case where the second element in the bucket is the one to be |
- // removed. |
- if (KeyValueTrait::KeyOf(lists_[current].kv) == key) { |
- array_[pos].next = lists_[current].next; |
- lists_[current] = HashMapListElement(); |
- lists_[current].next = free_list_head_; |
- free_list_head_ = current; |
- count_--; |
- return true; |
- } |
- |
- // Finally, iterate through the rest of the bucket to see if we can find the |
- // entry that matches our key. |
- intptr_t previous; |
- while (KeyValueTrait::KeyOf(lists_[current].kv) != key) { |
- previous = current; |
- current = lists_[current].next; |
- |
- if (current == kNil) { |
- // Could not find entry with provided key to remove. |
- return false; |
- } |
- } |
- |
- lists_[previous].next = lists_[current].next; |
- lists_[current] = HashMapListElement(); |
- lists_[current].next = free_list_head_; |
- free_list_head_ = current; |
- count_--; |
- return true; |
-} |
- |
- |
template <typename KeyValueTrait> |
class DirectChainedHashMap |
: public BaseDirectChainedHashMap<KeyValueTrait, ValueObject> { |