Index: src/heap/heap.h |
diff --git a/src/heap/heap.h b/src/heap/heap.h |
index f574bc6b0a42bead14d3082c9eeccd380eff337b..c6fd5a687fb48d9e6e432695189728acebb8f32f 100644 |
--- a/src/heap/heap.h |
+++ b/src/heap/heap.h |
@@ -2504,110 +2504,6 @@ class HeapIterator BASE_EMBEDDED { |
ObjectIterator* object_iterator_; |
}; |
- |
-// Cache for mapping (map, property name) into field offset. |
-// Cleared at startup and prior to mark sweep collection. |
-class KeyedLookupCache { |
- public: |
- // Lookup field offset for (map, name). If absent, -1 is returned. |
- int Lookup(Handle<Map> map, Handle<Name> name); |
- |
- // Update an element in the cache. |
- void Update(Handle<Map> map, Handle<Name> name, int field_offset); |
- |
- // Clear the cache. |
- void Clear(); |
- |
- static const int kLength = 256; |
- static const int kCapacityMask = kLength - 1; |
- static const int kMapHashShift = 5; |
- static const int kHashMask = -4; // Zero the last two bits. |
- static const int kEntriesPerBucket = 4; |
- static const int kEntryLength = 2; |
- static const int kMapIndex = 0; |
- static const int kKeyIndex = 1; |
- static const int kNotFound = -1; |
- |
- // kEntriesPerBucket should be a power of 2. |
- STATIC_ASSERT((kEntriesPerBucket & (kEntriesPerBucket - 1)) == 0); |
- STATIC_ASSERT(kEntriesPerBucket == -kHashMask); |
- |
- private: |
- KeyedLookupCache() { |
- for (int i = 0; i < kLength; ++i) { |
- keys_[i].map = NULL; |
- keys_[i].name = NULL; |
- field_offsets_[i] = kNotFound; |
- } |
- } |
- |
- static inline int Hash(Handle<Map> map, Handle<Name> name); |
- |
- // Get the address of the keys and field_offsets arrays. Used in |
- // generated code to perform cache lookups. |
- Address keys_address() { return reinterpret_cast<Address>(&keys_); } |
- |
- Address field_offsets_address() { |
- return reinterpret_cast<Address>(&field_offsets_); |
- } |
- |
- struct Key { |
- Map* map; |
- Name* name; |
- }; |
- |
- Key keys_[kLength]; |
- int field_offsets_[kLength]; |
- |
- friend class ExternalReference; |
- friend class Isolate; |
- DISALLOW_COPY_AND_ASSIGN(KeyedLookupCache); |
-}; |
- |
- |
-// Cache for mapping (map, property name) into descriptor index. |
-// The cache contains both positive and negative results. |
-// Descriptor index equals kNotFound means the property is absent. |
-// Cleared at startup and prior to any gc. |
-class DescriptorLookupCache { |
- public: |
- // Lookup descriptor index for (map, name). |
- // If absent, kAbsent is returned. |
- inline int Lookup(Map* source, Name* name); |
- |
- // Update an element in the cache. |
- inline void Update(Map* source, Name* name, int result); |
- |
- // Clear the cache. |
- void Clear(); |
- |
- static const int kAbsent = -2; |
- |
- private: |
- DescriptorLookupCache() { |
- for (int i = 0; i < kLength; ++i) { |
- keys_[i].source = NULL; |
- keys_[i].name = NULL; |
- results_[i] = kAbsent; |
- } |
- } |
- |
- static inline int Hash(Object* source, Name* name); |
- |
- static const int kLength = 64; |
- struct Key { |
- Map* source; |
- Name* name; |
- }; |
- |
- Key keys_[kLength]; |
- int results_[kLength]; |
- |
- friend class Isolate; |
- DISALLOW_COPY_AND_ASSIGN(DescriptorLookupCache); |
-}; |
- |
- |
// Abstract base class for checking whether a weak object should be retained. |
class WeakObjectRetainer { |
public: |