Chromium Code Reviews| Index: src/objects.h |
| diff --git a/src/objects.h b/src/objects.h |
| index ff9f45721f1498a181015755bb9759b670f53aa1..d95b00cc996417a3f31c9e1df36501704d6b763a 100644 |
| --- a/src/objects.h |
| +++ b/src/objects.h |
| @@ -1076,7 +1076,10 @@ class MaybeObject BASE_EMBEDDED { |
| V(Cell) \ |
| V(PropertyCell) \ |
| V(ObjectHashTable) \ |
| - V(WeakHashTable) |
| + V(WeakHashTable) \ |
| + V(OrderedHashTable) \ |
|
Michael Starzinger
2014/04/07 12:37:31
Since the OrderedHashTable is just the abstract su
adamk
2014/04/07 23:50:02
Okay, I switched back (only downside was that I ha
|
| + V(OrderedHashSet) \ |
| + V(OrderedHashMap) |
| #define ERROR_MESSAGES_LIST(V) \ |
| @@ -3751,7 +3754,6 @@ class HashTable: public FixedArray { |
| void Rehash(Key key); |
| protected: |
| - friend class ObjectHashSet; |
| friend class ObjectHashTable; |
| // Find the entry at which to insert element with the given key that |
| @@ -4182,7 +4184,6 @@ class UnseededNumberDictionary |
| }; |
| -template <int entrysize> |
| class ObjectHashTableShape : public BaseShape<Object*> { |
| public: |
| static inline bool IsMatch(Object* key, Object* other); |
| @@ -4191,45 +4192,13 @@ class ObjectHashTableShape : public BaseShape<Object*> { |
| MUST_USE_RESULT static inline MaybeObject* AsObject(Heap* heap, |
| Object* key); |
| static const int kPrefixSize = 0; |
| - static const int kEntrySize = entrysize; |
| -}; |
| - |
| - |
| -// ObjectHashSet holds keys that are arbitrary objects by using the identity |
| -// hash of the key for hashing purposes. |
| -class ObjectHashSet: public HashTable<ObjectHashTableShape<1>, Object*> { |
| - public: |
| - static inline ObjectHashSet* cast(Object* obj) { |
| - ASSERT(obj->IsHashTable()); |
| - return reinterpret_cast<ObjectHashSet*>(obj); |
| - } |
| - |
| - // Looks up whether the given key is part of this hash set. |
| - bool Contains(Object* key); |
| - |
| - static Handle<ObjectHashSet> EnsureCapacity( |
| - Handle<ObjectHashSet> table, |
| - int n, |
| - Handle<Object> key, |
| - PretenureFlag pretenure = NOT_TENURED); |
| - |
| - // Attempt to shrink hash table after removal of key. |
| - static Handle<ObjectHashSet> Shrink(Handle<ObjectHashSet> table, |
| - Handle<Object> key); |
| - |
| - // Adds the given key to this hash set. |
| - static Handle<ObjectHashSet> Add(Handle<ObjectHashSet> table, |
| - Handle<Object> key); |
| - |
| - // Removes the given key from this hash set. |
| - static Handle<ObjectHashSet> Remove(Handle<ObjectHashSet> table, |
| - Handle<Object> key); |
| + static const int kEntrySize = 2; |
| }; |
| // ObjectHashTable maps keys that are arbitrary objects to object values by |
| // using the identity hash of the key for hashing purposes. |
| -class ObjectHashTable: public HashTable<ObjectHashTableShape<2>, Object*> { |
| +class ObjectHashTable: public HashTable<ObjectHashTableShape, Object*> { |
| public: |
| static inline ObjectHashTable* cast(Object* obj) { |
| ASSERT(obj->IsHashTable()); |
| @@ -4301,7 +4270,7 @@ class OrderedHashTable: public FixedArray { |
| Isolate* isolate, int capacity, PretenureFlag pretenure = NOT_TENURED); |
| // Returns an OrderedHashTable (possibly |table|) with enough space |
| - // to add at least one new element, or returns a Failure if a GC occurs. |
| + // to add at least one new element. |
| static Handle<Derived> EnsureGrowable(Handle<Derived> table); |
| // Returns an OrderedHashTable (possibly |table|) that's shrunken |
| @@ -4391,10 +4360,7 @@ class OrderedHashTable: public FixedArray { |
| class OrderedHashSet: public OrderedHashTable<OrderedHashSet, 1> { |
| public: |
| - static OrderedHashSet* cast(Object* obj) { |
| - ASSERT(obj->IsFixedArray()); // TODO(adamk): Make a map for this |
| - return reinterpret_cast<OrderedHashSet*>(obj); |
| - } |
| + static inline OrderedHashSet* cast(Object* obj); |
| bool Contains(Object* key); |
| static Handle<OrderedHashSet> Add( |
| @@ -4406,10 +4372,7 @@ class OrderedHashSet: public OrderedHashTable<OrderedHashSet, 1> { |
| class OrderedHashMap: public OrderedHashTable<OrderedHashMap, 2> { |
| public: |
| - static OrderedHashMap* cast(Object* obj) { |
| - ASSERT(obj->IsFixedArray()); // TODO(adamk): Make a map for this |
| - return reinterpret_cast<OrderedHashMap*>(obj); |
| - } |
| + static inline OrderedHashMap* cast(Object* obj); |
| Object* Lookup(Object* key); |
| static Handle<OrderedHashMap> Put( |