Index: src/objects.cc |
diff --git a/src/objects.cc b/src/objects.cc |
index ae24cd6b45b6166b6262137d7d7473f28a81e330..ccd832cc563c3f5b485c6121ee2f52b9ec0c4592 100644 |
--- a/src/objects.cc |
+++ b/src/objects.cc |
@@ -14170,9 +14170,7 @@ template class HashTable<CompilationCacheShape, HashTableKey*>; |
template class HashTable<MapCacheShape, HashTableKey*>; |
-template class HashTable<ObjectHashTableShape<1>, Object*>; |
- |
-template class HashTable<ObjectHashTableShape<2>, Object*>; |
+template class HashTable<ObjectHashTableShape, Object*>; |
template class HashTable<WeakHashTableShape<2>, Object*>; |
@@ -15709,87 +15707,12 @@ MaybeObject* NameDictionary::TransformPropertiesToFastFor( |
} |
-Handle<ObjectHashSet> ObjectHashSet::EnsureCapacity( |
- Handle<ObjectHashSet> table, |
- int n, |
- Handle<Object> key, |
- PretenureFlag pretenure) { |
- Handle<HashTable<ObjectHashTableShape<1>, Object*> > table_base = table; |
- CALL_HEAP_FUNCTION(table_base->GetIsolate(), |
- table_base->EnsureCapacity(n, *key, pretenure), |
- ObjectHashSet); |
-} |
- |
- |
-Handle<ObjectHashSet> ObjectHashSet::Shrink(Handle<ObjectHashSet> table, |
- Handle<Object> key) { |
- Handle<HashTable<ObjectHashTableShape<1>, Object*> > table_base = table; |
- CALL_HEAP_FUNCTION(table_base->GetIsolate(), |
- table_base->Shrink(*key), |
- ObjectHashSet); |
-} |
- |
- |
-bool ObjectHashSet::Contains(Object* key) { |
- ASSERT(IsKey(key)); |
- |
- // If the object does not have an identity hash, it was never used as a key. |
- Object* hash = key->GetHash(); |
- if (hash->IsUndefined()) return false; |
- |
- return (FindEntry(key) != kNotFound); |
-} |
- |
- |
-Handle<ObjectHashSet> ObjectHashSet::Add(Handle<ObjectHashSet> table, |
- Handle<Object> key) { |
- ASSERT(table->IsKey(*key)); |
- |
- // Make sure the key object has an identity hash code. |
- Handle<Object> object_hash = Object::GetOrCreateHash(key, |
- table->GetIsolate()); |
- |
- int entry = table->FindEntry(*key); |
- |
- // Check whether key is already present. |
- if (entry != kNotFound) return table; |
- |
- // Check whether the hash set should be extended and add entry. |
- Handle<ObjectHashSet> new_table = |
- ObjectHashSet::EnsureCapacity(table, 1, key); |
- entry = new_table->FindInsertionEntry(Smi::cast(*object_hash)->value()); |
- new_table->set(EntryToIndex(entry), *key); |
- new_table->ElementAdded(); |
- return new_table; |
-} |
- |
- |
-Handle<ObjectHashSet> ObjectHashSet::Remove(Handle<ObjectHashSet> table, |
- Handle<Object> key) { |
- ASSERT(table->IsKey(*key)); |
- |
- // If the object does not have an identity hash, it was never used as a key. |
- if (key->GetHash()->IsUndefined()) return table; |
- |
- int entry = table->FindEntry(*key); |
- |
- // Check whether key is actually present. |
- if (entry == kNotFound) return table; |
- |
- // Remove entry and try to shrink this hash set. |
- table->set_the_hole(EntryToIndex(entry)); |
- table->ElementRemoved(); |
- |
- return ObjectHashSet::Shrink(table, key); |
-} |
- |
- |
Handle<ObjectHashTable> ObjectHashTable::EnsureCapacity( |
Handle<ObjectHashTable> table, |
int n, |
Handle<Object> key, |
PretenureFlag pretenure) { |
- Handle<HashTable<ObjectHashTableShape<2>, Object*> > table_base = table; |
+ Handle<HashTable<ObjectHashTableShape, Object*> > table_base = table; |
CALL_HEAP_FUNCTION(table_base->GetIsolate(), |
table_base->EnsureCapacity(n, *key, pretenure), |
ObjectHashTable); |
@@ -15798,7 +15721,7 @@ Handle<ObjectHashTable> ObjectHashTable::EnsureCapacity( |
Handle<ObjectHashTable> ObjectHashTable::Shrink( |
Handle<ObjectHashTable> table, Handle<Object> key) { |
- Handle<HashTable<ObjectHashTableShape<2>, Object*> > table_base = table; |
+ Handle<HashTable<ObjectHashTableShape, Object*> > table_base = table; |
CALL_HEAP_FUNCTION(table_base->GetIsolate(), |
table_base->Shrink(*key), |
ObjectHashTable); |
@@ -15916,11 +15839,11 @@ Handle<Derived> OrderedHashTable<Derived, entrysize>::Allocate( |
v8::internal::Heap::FatalProcessOutOfMemory("invalid table size", true); |
} |
int num_buckets = capacity / kLoadFactor; |
- Handle<Derived> table = |
- Handle<Derived>::cast( |
- isolate->factory()->NewFixedArray( |
- kHashTableStartIndex + num_buckets + (capacity * kEntrySize), |
- pretenure)); |
+ Handle<FixedArray> backing_store = isolate->factory()->NewFixedArray( |
+ kHashTableStartIndex + num_buckets + (capacity * kEntrySize), pretenure); |
+ backing_store->set_map_no_write_barrier( |
+ isolate->heap()->ordered_hash_table_map()); |
+ Handle<Derived> table = Handle<Derived>::cast(backing_store); |
for (int i = 0; i < num_buckets; ++i) { |
table->set(kHashTableStartIndex + i, Smi::FromInt(kNotFound)); |
} |