OLD | NEW |
1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 the V8 project authors. All rights reserved. |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
(...skipping 4579 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4590 } | 4590 } |
4591 } else if (number_idle_notifications_ > kIdlesBeforeMarkCompact) { | 4591 } else if (number_idle_notifications_ > kIdlesBeforeMarkCompact) { |
4592 // If we have received more than kIdlesBeforeMarkCompact idle | 4592 // If we have received more than kIdlesBeforeMarkCompact idle |
4593 // notifications we do not perform any cleanup because we don't | 4593 // notifications we do not perform any cleanup because we don't |
4594 // expect to gain much by doing so. | 4594 // expect to gain much by doing so. |
4595 finished = true; | 4595 finished = true; |
4596 } | 4596 } |
4597 | 4597 |
4598 // Make sure that we have no pending context disposals and | 4598 // Make sure that we have no pending context disposals and |
4599 // conditionally uncommit from space. | 4599 // conditionally uncommit from space. |
4600 ASSERT((contexts_disposed_ == 0) || incremental_marking()->IsMarking()); | 4600 // Take into account that we might have decided to delay full collection |
| 4601 // because incremental marking is in progress. |
| 4602 ASSERT((contexts_disposed_ == 0) || !incremental_marking()->IsStopped()); |
4601 if (uncommit) UncommitFromSpace(); | 4603 if (uncommit) UncommitFromSpace(); |
| 4604 |
4602 return finished; | 4605 return finished; |
4603 } | 4606 } |
4604 | 4607 |
4605 | 4608 |
4606 #ifdef DEBUG | 4609 #ifdef DEBUG |
4607 | 4610 |
4608 void Heap::Print() { | 4611 void Heap::Print() { |
4609 if (!HasBeenSetup()) return; | 4612 if (!HasBeenSetup()) return; |
4610 isolate()->PrintStack(); | 4613 isolate()->PrintStack(); |
4611 AllSpaces spaces; | 4614 AllSpaces spaces; |
(...skipping 1860 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6472 } | 6475 } |
6473 isolate_->heap()->store_buffer()->Filter(MemoryChunk::ABOUT_TO_BE_FREED); | 6476 isolate_->heap()->store_buffer()->Filter(MemoryChunk::ABOUT_TO_BE_FREED); |
6474 for (chunk = chunks_queued_for_free_; chunk != NULL; chunk = next) { | 6477 for (chunk = chunks_queued_for_free_; chunk != NULL; chunk = next) { |
6475 next = chunk->next_chunk(); | 6478 next = chunk->next_chunk(); |
6476 isolate_->memory_allocator()->Free(chunk); | 6479 isolate_->memory_allocator()->Free(chunk); |
6477 } | 6480 } |
6478 chunks_queued_for_free_ = NULL; | 6481 chunks_queued_for_free_ = NULL; |
6479 } | 6482 } |
6480 | 6483 |
6481 } } // namespace v8::internal | 6484 } } // namespace v8::internal |
OLD | NEW |