Index: src/heap/identity-map.h |
diff --git a/src/heap/identity-map.h b/src/heap/identity-map.h |
deleted file mode 100644 |
index 672ca5a52a7e292a08cc8de8dcd860b9355ba605..0000000000000000000000000000000000000000 |
--- a/src/heap/identity-map.h |
+++ /dev/null |
@@ -1,98 +0,0 @@ |
-// Copyright 2015 the V8 project authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#ifndef V8_HEAP_IDENTITY_MAP_H_ |
-#define V8_HEAP_IDENTITY_MAP_H_ |
- |
-#include "src/handles.h" |
- |
-namespace v8 { |
-namespace internal { |
- |
-// Forward declarations. |
-class Heap; |
-class Zone; |
- |
-// Base class of identity maps contains shared code for all template |
-// instantions. |
-class IdentityMapBase { |
- public: |
- // Enable or disable concurrent mode for this map. Concurrent mode implies |
- // taking the heap's relocation lock during most operations. |
- void SetConcurrent(bool concurrent) { concurrent_ = concurrent; } |
- |
- protected: |
- // Allow Tester to access internals, including changing the address of objects |
- // within the {keys_} array in order to simulate a moving GC. |
- friend class IdentityMapTester; |
- |
- typedef void** RawEntry; |
- |
- IdentityMapBase(Heap* heap, Zone* zone) |
- : heap_(heap), |
- zone_(zone), |
- concurrent_(false), |
- gc_counter_(-1), |
- size_(0), |
- mask_(0), |
- keys_(nullptr), |
- values_(nullptr) {} |
- ~IdentityMapBase(); |
- |
- RawEntry GetEntry(Handle<Object> key); |
- RawEntry FindEntry(Handle<Object> key); |
- |
- private: |
- // Internal implementation should not be called directly by subclasses. |
- int LookupIndex(Object* address); |
- int InsertIndex(Object* address); |
- void Rehash(); |
- void Resize(); |
- RawEntry Lookup(Handle<Object> key); |
- RawEntry Insert(Handle<Object> key); |
- int Hash(Object* address); |
- |
- Heap* heap_; |
- Zone* zone_; |
- bool concurrent_; |
- int gc_counter_; |
- int size_; |
- int mask_; |
- Object** keys_; |
- void** values_; |
-}; |
- |
-// Implements an identity map from object addresses to a given value type {V}. |
-// The map is robust w.r.t. garbage collection by synchronization with the |
-// supplied {heap}. |
-// * Keys are treated as strong roots. |
-// * SMIs are valid keys, except SMI #0. |
-// * The value type {V} must be reinterpret_cast'able to {void*} |
-// * The value type {V} must not be a heap type. |
-template <typename V> |
-class IdentityMap : public IdentityMapBase { |
- public: |
- IdentityMap(Heap* heap, Zone* zone) : IdentityMapBase(heap, zone) {} |
- |
- // Searches this map for the given key using the object's address |
- // as the identity, returning: |
- // found => a pointer to the storage location for the value |
- // not found => a pointer to a new storage location for the value |
- V* Get(Handle<Object> key) { return reinterpret_cast<V*>(GetEntry(key)); } |
- |
- // Searches this map for the given key using the object's address |
- // as the identity, returning: |
- // found => a pointer to the storage location for the value |
- // not found => {nullptr} |
- V* Find(Handle<Object> key) { return reinterpret_cast<V*>(FindEntry(key)); } |
- |
- // Set the value for the given key. |
- void Set(Handle<Object> key, V value) { |
- *(reinterpret_cast<V*>(GetEntry(key))) = value; |
- } |
-}; |
-} |
-} // namespace v8::internal |
- |
-#endif // V8_HEAP_IDENTITY_MAP_H_ |