Index: src/heap/array-buffer-tracker-inl.h |
diff --git a/src/heap/array-buffer-tracker-inl.h b/src/heap/array-buffer-tracker-inl.h |
index 27c593d0f073e9d35e7b1a97da65da5473b64aef..dd023c7e380892a6c49d5ed62c3323406ef49f25 100644 |
--- a/src/heap/array-buffer-tracker-inl.h |
+++ b/src/heap/array-buffer-tracker-inl.h |
@@ -24,6 +24,11 @@ void ArrayBufferTracker::RegisterNew(Heap* heap, JSArrayBuffer* buffer) { |
tracker = page->local_tracker(); |
} |
DCHECK_NOT_NULL(tracker); |
+ if (heap->InNewSpace(buffer)) { |
+ retained_from_new_space_.Increment(static_cast<intptr_t>(length)); |
+ } else { |
+ retained_from_old_space_.Increment(static_cast<intptr_t>(length)); |
+ } |
tracker->Add(buffer, length); |
} |
// We may go over the limit of externally allocated memory here. We call the |
@@ -43,6 +48,11 @@ void ArrayBufferTracker::Unregister(Heap* heap, JSArrayBuffer* buffer) { |
LocalArrayBufferTracker* tracker = page->local_tracker(); |
DCHECK_NOT_NULL(tracker); |
length = tracker->Remove(buffer); |
+ if (heap->InNewSpace(buffer)) { |
+ retained_from_new_space_.Increment(-static_cast<intptr_t>(length)); |
+ } else { |
+ retained_from_old_space_.Increment(-static_cast<intptr_t>(length)); |
+ } |
} |
heap->update_external_memory(-static_cast<intptr_t>(length)); |
} |