| 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));
|
| }
|
|
|