| 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 3584 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3595 if (p->IsEvacuationCandidate()) { | 3595 if (p->IsEvacuationCandidate()) { |
| 3596 ASSERT(evacuation_candidates_.length() > 0); | 3596 ASSERT(evacuation_candidates_.length() > 0); |
| 3597 continue; | 3597 continue; |
| 3598 } | 3598 } |
| 3599 | 3599 |
| 3600 if (p->IsFlagSet(Page::RESCAN_ON_EVACUATION)) { | 3600 if (p->IsFlagSet(Page::RESCAN_ON_EVACUATION)) { |
| 3601 // Will be processed in EvacuateNewSpaceAndCandidates. | 3601 // Will be processed in EvacuateNewSpaceAndCandidates. |
| 3602 continue; | 3602 continue; |
| 3603 } | 3603 } |
| 3604 | 3604 |
| 3605 if (lazy_sweeping_active) { | |
| 3606 if (FLAG_gc_verbose) { | |
| 3607 PrintF("Sweeping 0x%" V8PRIxPTR " lazily postponed.\n", | |
| 3608 reinterpret_cast<intptr_t>(p)); | |
| 3609 } | |
| 3610 continue; | |
| 3611 } | |
| 3612 | |
| 3613 // One unused page is kept, all further are released before sweeping them. | 3605 // One unused page is kept, all further are released before sweeping them. |
| 3614 if (p->LiveBytes() == 0) { | 3606 if (p->LiveBytes() == 0) { |
| 3615 if (unused_page_present) { | 3607 if (unused_page_present) { |
| 3616 if (FLAG_gc_verbose) { | 3608 if (FLAG_gc_verbose) { |
| 3617 PrintF("Sweeping 0x%" V8PRIxPTR " released page.\n", | 3609 PrintF("Sweeping 0x%" V8PRIxPTR " released page.\n", |
| 3618 reinterpret_cast<intptr_t>(p)); | 3610 reinterpret_cast<intptr_t>(p)); |
| 3619 } | 3611 } |
| 3620 space->ReleasePage(p); | 3612 space->ReleasePage(p); |
| 3621 continue; | 3613 continue; |
| 3622 } | 3614 } |
| 3623 unused_page_present = true; | 3615 unused_page_present = true; |
| 3624 } | 3616 } |
| 3625 | 3617 |
| 3618 if (lazy_sweeping_active) { |
| 3619 if (FLAG_gc_verbose) { |
| 3620 PrintF("Sweeping 0x%" V8PRIxPTR " lazily postponed.\n", |
| 3621 reinterpret_cast<intptr_t>(p)); |
| 3622 } |
| 3623 continue; |
| 3624 } |
| 3625 |
| 3626 switch (sweeper) { | 3626 switch (sweeper) { |
| 3627 case CONSERVATIVE: { | 3627 case CONSERVATIVE: { |
| 3628 if (FLAG_gc_verbose) { | 3628 if (FLAG_gc_verbose) { |
| 3629 PrintF("Sweeping 0x%" V8PRIxPTR " conservatively.\n", | 3629 PrintF("Sweeping 0x%" V8PRIxPTR " conservatively.\n", |
| 3630 reinterpret_cast<intptr_t>(p)); | 3630 reinterpret_cast<intptr_t>(p)); |
| 3631 } | 3631 } |
| 3632 SweepConservatively(space, p); | 3632 SweepConservatively(space, p); |
| 3633 pages_swept++; | 3633 pages_swept++; |
| 3634 break; | 3634 break; |
| 3635 } | 3635 } |
| (...skipping 245 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3881 while (buffer != NULL) { | 3881 while (buffer != NULL) { |
| 3882 SlotsBuffer* next_buffer = buffer->next(); | 3882 SlotsBuffer* next_buffer = buffer->next(); |
| 3883 DeallocateBuffer(buffer); | 3883 DeallocateBuffer(buffer); |
| 3884 buffer = next_buffer; | 3884 buffer = next_buffer; |
| 3885 } | 3885 } |
| 3886 *buffer_address = NULL; | 3886 *buffer_address = NULL; |
| 3887 } | 3887 } |
| 3888 | 3888 |
| 3889 | 3889 |
| 3890 } } // namespace v8::internal | 3890 } } // namespace v8::internal |
| OLD | NEW |