Chromium Code Reviews| Index: runtime/vm/zone.cc |
| diff --git a/runtime/vm/zone.cc b/runtime/vm/zone.cc |
| index 36e962260dd30ed433c67ff89812392ece46ec04..8dafe15f92211f040ad9706523b9bab7b968b687 100644 |
| --- a/runtime/vm/zone.cc |
| +++ b/runtime/vm/zone.cc |
| @@ -44,6 +44,9 @@ class Zone::Segment { |
| void Zone::Segment::DeleteSegmentList(Segment* head) { |
| Segment* current = head; |
| while (current != NULL) { |
| + if (Thread::Current() != NULL) { |
| + Thread::Current()->DecrementThreadMemoryUsage(current->size()); |
| + } |
|
siva
2016/12/27 22:09:26
Please hoist Thread:Current() outside the loop int
bkonyi
2016/12/28 00:09:58
Done.
There's a case when running the unit tests
siva
2016/12/28 17:52:35
It can be Null when the native IO isolate is alloc
bkonyi
2016/12/28 19:00:49
I've added a TODO to handle the special case when
|
| Segment* next = current->next(); |
| #ifdef DEBUG |
| // Zap the entire current segment (including the header). |
| @@ -68,6 +71,9 @@ Zone::Segment* Zone::Segment::New(intptr_t size, Zone::Segment* next) { |
| #endif |
| result->next_ = next; |
| result->size_ = size; |
| + if (Thread::Current() != NULL) { |
| + Thread::Current()->IncrementThreadMemoryUsage(size); |
| + } |
| return result; |
| } |