Chromium Code Reviews| Index: src/heap/heap.h |
| diff --git a/src/heap/heap.h b/src/heap/heap.h |
| index 933c4dc4dc4c9480297a1e4cb5c05a0e599b8ef1..aaf8bd414601824df41fbf3594af18bf6c421ad2 100644 |
| --- a/src/heap/heap.h |
| +++ b/src/heap/heap.h |
| @@ -420,6 +420,7 @@ namespace internal { |
| PRIVATE_SYMBOL_LIST(V) |
| // Forward declarations. |
| +class ArrayBufferTracker; |
| class HeapObjectsFilter; |
| class HeapStats; |
| class Isolate; |
| @@ -984,6 +985,10 @@ class Heap { |
| return amount_of_external_allocated_memory_; |
| } |
| + void update_amount_of_external_allocated_memory(int64_t delta) { |
| + amount_of_external_allocated_memory_ += delta; |
| + } |
| + |
| void DeoptMarkedAllocationSites(); |
| bool DeoptMaybeTenuredAllocationSites() { |
| @@ -1009,29 +1014,6 @@ class Heap { |
| bool deserialization_complete() const { return deserialization_complete_; } |
| - // The following methods are used to track raw C++ pointers to externally |
| - // allocated memory used as backing store in live array buffers. |
| - |
| - // A new ArrayBuffer was created with |data| as backing store. |
| - void RegisterNewArrayBuffer(bool in_new_space, void* data, size_t length); |
|
Michael Lippautz
2015/09/04 08:24:15
Create public wrapper calls only for RegisterNewAr
fedor.indutny
2015/09/04 08:58:05
Acknowledged.
|
| - |
| - // The backing store |data| is no longer owned by V8. |
| - void UnregisterArrayBuffer(bool in_new_space, void* data); |
| - |
| - // A live ArrayBuffer was discovered during marking/scavenge. |
| - void RegisterLiveArrayBuffer(bool in_new_space, void* data); |
| - |
| - // Frees all backing store pointers that weren't discovered in the previous |
| - // marking or scavenge phase. |
| - void FreeDeadArrayBuffers(bool from_scavenge); |
| - |
| - // Prepare for a new scavenge phase. A new marking phase is implicitly |
| - // prepared by finishing the previous one. |
| - void PrepareArrayBufferDiscoveryInNewSpace(); |
| - |
| - // An ArrayBuffer moved from new space to old space. |
| - void PromoteArrayBuffer(Object* buffer); |
| - |
| bool HasLowAllocationRate(); |
| bool HasHighFragmentation(); |
| bool HasHighFragmentation(intptr_t used, intptr_t committed); |
| @@ -1120,6 +1102,10 @@ class Heap { |
| return &mark_compact_collector_; |
| } |
| + inline ArrayBufferTracker* array_buffer_tracker() { |
| + return array_buffer_tracker_; |
| + } |
| + |
| // =========================================================================== |
| // Root set access. ========================================================== |
| // =========================================================================== |
| @@ -1755,9 +1741,6 @@ class Heap { |
| // the old space. |
| void EvaluateOldSpaceLocalPretenuring(uint64_t size_of_objects_before_gc); |
| - // Called on heap tear-down. Frees all remaining ArrayBuffer backing stores. |
| - void TearDownArrayBuffers(); |
| - |
| // Record statistics before and after garbage collection. |
| void ReportStatisticsBeforeGC(); |
| void ReportStatisticsAfterGC(); |
| @@ -2339,27 +2322,10 @@ class Heap { |
| bool concurrent_sweeping_enabled_; |
| - // |live_array_buffers_| maps externally allocated memory used as backing |
| - // store for ArrayBuffers to the length of the respective memory blocks. |
| - // |
| - // At the beginning of mark/compact, |not_yet_discovered_array_buffers_| is |
| - // a copy of |live_array_buffers_| and we remove pointers as we discover live |
| - // ArrayBuffer objects during marking. At the end of mark/compact, the |
| - // remaining memory blocks can be freed. |
| - std::map<void*, size_t> live_array_buffers_; |
| - std::map<void*, size_t> not_yet_discovered_array_buffers_; |
| - |
| - // To be able to free memory held by ArrayBuffers during scavenge as well, we |
| - // have a separate list of allocated memory held by ArrayBuffers in new space. |
| - // |
| - // Since mark/compact also evacuates the new space, all pointers in the |
| - // |live_array_buffers_for_scavenge_| list are also in the |
| - // |live_array_buffers_| list. |
| - std::map<void*, size_t> live_array_buffers_for_scavenge_; |
| - std::map<void*, size_t> not_yet_discovered_array_buffers_for_scavenge_; |
| - |
| StrongRootsList* strong_roots_list_; |
| + ArrayBufferTracker* array_buffer_tracker_; |
| + |
| // Classes in "heap" can be friends. |
| friend class AlwaysAllocateScope; |
| friend class GCCallbacksScope; |