Index: src/objects.cc |
diff --git a/src/objects.cc b/src/objects.cc |
index 8b1c3fee434cccf48cba3852dadcb2788bc4c898..e4d25f9441a08b29bac4292db72aa403d1289846 100644 |
--- a/src/objects.cc |
+++ b/src/objects.cc |
@@ -14859,9 +14859,11 @@ template class HashTable<CompilationCacheTable, |
template class HashTable<MapCache, MapCacheShape, HashTableKey*>; |
-template class HashTable<ObjectHashTable, ObjectHashTableShape, Object*>; |
+template class HashTable<ObjectHashTable, |
+ ObjectHashTableShape, |
+ Handle<Object> >; |
-template class HashTable<WeakHashTable, WeakHashTableShape<2>, Object*>; |
+template class HashTable<WeakHashTable, WeakHashTableShape<2>, Handle<Object> >; |
template class Dictionary<NameDictionary, NameDictionaryShape, Handle<Name> >; |
@@ -16141,6 +16143,21 @@ Object* ObjectHashTable::Lookup(Object* key) { |
} |
+// TODO(ishell): Try to remove this when FindEntry(Object* key) is removed |
+int ObjectHashTable::FindEntry(Handle<Object> key) { |
+ return DerivedHashTable::FindEntry(key); |
+} |
+ |
+ |
+// TODO(ishell): Remove this when all the callers are handlified. |
+int ObjectHashTable::FindEntry(Object* key) { |
+ DisallowHeapAllocation no_allocation; |
+ Isolate* isolate = GetIsolate(); |
+ HandleScope scope(isolate); |
+ return FindEntry(handle(key, isolate)); |
+} |
+ |
+ |
Handle<ObjectHashTable> ObjectHashTable::Put(Handle<ObjectHashTable> table, |
Handle<Object> key, |
Handle<Object> value) { |
@@ -16151,7 +16168,7 @@ Handle<ObjectHashTable> ObjectHashTable::Put(Handle<ObjectHashTable> table, |
// Make sure the key object has an identity hash code. |
Handle<Object> hash = Object::GetOrCreateHash(key, isolate); |
- int entry = table->FindEntry(*key); |
+ int entry = table->FindEntry(key); |
// Check whether to perform removal operation. |
if (value->IsTheHole()) { |
@@ -16167,7 +16184,7 @@ Handle<ObjectHashTable> ObjectHashTable::Put(Handle<ObjectHashTable> table, |
} |
// Check whether the hash table should be extended. |
- table = EnsureCapacity(table, 1, *key); |
+ table = EnsureCapacity(table, 1, key); |
table->AddEntry(table->FindInsertionEntry(Handle<Smi>::cast(hash)->value()), |
*key, |
*value); |
@@ -16197,11 +16214,26 @@ Object* WeakHashTable::Lookup(Object* key) { |
} |
+// TODO(ishell): Try to remove this when FindEntry(Object* key) is removed |
+int WeakHashTable::FindEntry(Handle<Object> key) { |
+ return DerivedHashTable::FindEntry(key); |
+} |
+ |
+ |
+// TODO(ishell): Remove this when all the callers are handlified. |
+int WeakHashTable::FindEntry(Object* key) { |
+ DisallowHeapAllocation no_allocation; |
+ Isolate* isolate = GetIsolate(); |
+ HandleScope scope(isolate); |
+ return FindEntry(handle(key, isolate)); |
+} |
+ |
+ |
Handle<WeakHashTable> WeakHashTable::Put(Handle<WeakHashTable> table, |
Handle<Object> key, |
Handle<Object> value) { |
ASSERT(table->IsKey(*key)); |
- int entry = table->FindEntry(*key); |
+ int entry = table->FindEntry(key); |
// Key is already in table, just overwrite value. |
if (entry != kNotFound) { |
table->set(EntryToValueIndex(entry), *value); |
@@ -16209,9 +16241,9 @@ Handle<WeakHashTable> WeakHashTable::Put(Handle<WeakHashTable> table, |
} |
// Check whether the hash table should be extended. |
- table = EnsureCapacity(table, 1, *key, TENURED); |
+ table = EnsureCapacity(table, 1, key, TENURED); |
- table->AddEntry(table->FindInsertionEntry(table->Hash(*key)), key, value); |
+ table->AddEntry(table->FindInsertionEntry(table->Hash(key)), key, value); |
return table; |
} |