Index: src/base/hashmap.h |
diff --git a/src/base/hashmap.h b/src/base/hashmap.h |
index efb5dc8baaafd7bdb0f036bca43347f1322aa42d..36755f62c3a051bf4bbe23d2a0515434594a0faf 100644 |
--- a/src/base/hashmap.h |
+++ b/src/base/hashmap.h |
@@ -61,6 +61,9 @@ class TemplateHashMapImpl { |
Entry* LookupOrInsert(void* key, uint32_t hash, |
AllocationPolicy allocator = AllocationPolicy()); |
+ Entry* InsertNew(void* key, uint32_t hash, |
+ AllocationPolicy allocator = AllocationPolicy()); |
+ |
// Removes the entry with matching key. |
// It returns the value of the deleted entry |
// or null if there is no value for such key. |
@@ -134,6 +137,17 @@ TemplateHashMapImpl<AllocationPolicy>::LookupOrInsert( |
return p; |
} |
+ return InsertNew(key, hash, allocator); |
+} |
+ |
+template <class AllocationPolicy> |
+typename TemplateHashMapImpl<AllocationPolicy>::Entry* |
+TemplateHashMapImpl<AllocationPolicy>::InsertNew(void* key, uint32_t hash, |
+ AllocationPolicy allocator) { |
+ // Find a matching entry. |
+ Entry* p = Probe(key, hash); |
+ DCHECK(p->key == NULL); |
+ |
// No entry found; insert one. |
p->key = key; |
p->value = NULL; |