| Index: src/heap/array-buffer-tracker.h
|
| diff --git a/src/heap/array-buffer-tracker.h b/src/heap/array-buffer-tracker.h
|
| index 898024a708b954149f9fd66d238ca162c99edeee..b015aa0d4bcf4f2d1715523e1381bbee5a82c69e 100644
|
| --- a/src/heap/array-buffer-tracker.h
|
| +++ b/src/heap/array-buffer-tracker.h
|
| @@ -5,7 +5,7 @@
|
| #ifndef V8_HEAP_ARRAY_BUFFER_TRACKER_H_
|
| #define V8_HEAP_ARRAY_BUFFER_TRACKER_H_
|
|
|
| -#include <unordered_set>
|
| +#include <unordered_map>
|
|
|
| #include "src/allocation.h"
|
| #include "src/base/platform/mutex.h"
|
| @@ -59,6 +59,7 @@
|
| // Never use directly but instead always call through |ArrayBufferTracker|.
|
| class LocalArrayBufferTracker {
|
| public:
|
| + typedef std::pair<void*, size_t> Value;
|
| typedef JSArrayBuffer* Key;
|
|
|
| enum CallbackResult { kKeepEntry, kUpdateEntry, kRemoveEntry };
|
| @@ -67,8 +68,8 @@
|
| explicit LocalArrayBufferTracker(Heap* heap) : heap_(heap) {}
|
| ~LocalArrayBufferTracker();
|
|
|
| - inline void Add(Key key);
|
| - inline void Remove(Key key);
|
| + inline void Add(Key key, const Value& value);
|
| + inline Value Remove(Key key);
|
|
|
| // Frees up array buffers determined by |free_mode|.
|
| template <FreeMode free_mode>
|
| @@ -80,7 +81,7 @@
|
| // Callback should be of type:
|
| // CallbackResult fn(JSArrayBuffer* buffer, JSArrayBuffer** new_buffer);
|
| template <typename Callback>
|
| - void Process(Callback callback);
|
| + inline void Process(Callback callback);
|
|
|
| bool IsEmpty() { return array_buffers_.empty(); }
|
|
|
| @@ -89,10 +90,10 @@
|
| }
|
|
|
| private:
|
| - typedef std::unordered_set<Key> TrackingData;
|
| + typedef std::unordered_map<Key, Value> TrackingMap;
|
|
|
| Heap* heap_;
|
| - TrackingData array_buffers_;
|
| + TrackingMap array_buffers_;
|
| };
|
|
|
| } // namespace internal
|
|
|