diff options
Diffstat (limited to 'deps/v8/src/heap/array-buffer-tracker.h')
-rw-r--r-- | deps/v8/src/heap/array-buffer-tracker.h | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/deps/v8/src/heap/array-buffer-tracker.h b/deps/v8/src/heap/array-buffer-tracker.h index 3c00c2c486..3d1c2cab76 100644 --- a/deps/v8/src/heap/array-buffer-tracker.h +++ b/deps/v8/src/heap/array-buffer-tracker.h @@ -31,8 +31,8 @@ class ArrayBufferTracker : public AllStatic { // Register/unregister a new JSArrayBuffer |buffer| for tracking. Guards all // access to the tracker by taking the page lock for the corresponding page. - inline static void RegisterNew(Heap* heap, JSArrayBuffer* buffer); - inline static void Unregister(Heap* heap, JSArrayBuffer* buffer); + inline static void RegisterNew(Heap* heap, JSArrayBuffer buffer); + inline static void Unregister(Heap* heap, JSArrayBuffer buffer); // Identifies all backing store pointers for dead JSArrayBuffers in new space. // Does not take any locks and can only be called during Scavenge. @@ -53,7 +53,7 @@ class ArrayBufferTracker : public AllStatic { static bool ProcessBuffers(Page* page, ProcessingMode mode); // Returns whether a buffer is currently tracked. - static bool IsTracked(JSArrayBuffer* buffer); + static bool IsTracked(JSArrayBuffer buffer); // Tears down the tracker and frees up all registered array buffers. static void TearDown(Heap* heap); @@ -70,13 +70,13 @@ class LocalArrayBufferTracker { explicit LocalArrayBufferTracker(Page* page) : page_(page) {} ~LocalArrayBufferTracker(); - inline void Add(JSArrayBuffer* buffer, size_t length); - inline void Remove(JSArrayBuffer* buffer, size_t length); + inline void Add(JSArrayBuffer buffer, size_t length); + inline void Remove(JSArrayBuffer buffer, size_t length); // Frees up array buffers. // // Sample usage: - // Free([](HeapObject* array_buffer) { + // Free([](HeapObject array_buffer) { // if (should_free_internal(array_buffer)) return true; // return false; // }); @@ -87,21 +87,21 @@ class LocalArrayBufferTracker { // what action to take on the buffer. // // Callback should be of type: - // CallbackResult fn(JSArrayBuffer* buffer, JSArrayBuffer** new_buffer); + // CallbackResult fn(JSArrayBuffer buffer, JSArrayBuffer* new_buffer); template <typename Callback> void Process(Callback callback); bool IsEmpty() const { return array_buffers_.empty(); } - bool IsTracked(JSArrayBuffer* buffer) const { + bool IsTracked(JSArrayBuffer buffer) const { return array_buffers_.find(buffer) != array_buffers_.end(); } private: class Hasher { public: - size_t operator()(JSArrayBuffer* buffer) const { - return reinterpret_cast<size_t>(buffer) >> 3; + size_t operator()(JSArrayBuffer buffer) const { + return static_cast<size_t>(buffer.ptr() >> 3); } }; @@ -110,12 +110,12 @@ class LocalArrayBufferTracker { // HeapNumber. The reason for tracking the length is that in the case of // length being a HeapNumber, the buffer and its length may be stored on // different memory pages, making it impossible to guarantee order of freeing. - typedef std::unordered_map<JSArrayBuffer*, JSArrayBuffer::Allocation, Hasher> + typedef std::unordered_map<JSArrayBuffer, JSArrayBuffer::Allocation, Hasher> TrackingData; // Internal version of add that does not update counters. Requires separate // logic for updating external memory counters. - inline void AddInternal(JSArrayBuffer* buffer, size_t length); + inline void AddInternal(JSArrayBuffer buffer, size_t length); inline Space* space(); |