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 2789 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2800 | 2800 |
2801 if (was_swept_conservatively_) return; | 2801 if (was_swept_conservatively_) return; |
2802 ClearHistograms(heap()->isolate()); | 2802 ClearHistograms(heap()->isolate()); |
2803 HeapObjectIterator obj_it(this); | 2803 HeapObjectIterator obj_it(this); |
2804 for (HeapObject* obj = obj_it.Next(); obj != NULL; obj = obj_it.Next()) | 2804 for (HeapObject* obj = obj_it.Next(); obj != NULL; obj = obj_it.Next()) |
2805 CollectHistogramInfo(obj); | 2805 CollectHistogramInfo(obj); |
2806 ReportHistogram(heap()->isolate(), true); | 2806 ReportHistogram(heap()->isolate(), true); |
2807 } | 2807 } |
2808 #endif | 2808 #endif |
2809 | 2809 |
2810 // ----------------------------------------------------------------------------- | |
2811 // FixedSpace implementation | |
2812 | |
2813 void FixedSpace::PrepareForMarkCompact() { | |
2814 // Call prepare of the super class. | |
2815 PagedSpace::PrepareForMarkCompact(); | |
2816 | |
2817 // During a non-compacting collection, everything below the linear | |
2818 // allocation pointer except wasted top-of-page blocks is considered | |
2819 // allocated and we will rediscover available bytes during the | |
2820 // collection. | |
2821 accounting_stats_.AllocateBytes(free_list_.available()); | |
2822 | |
2823 // Clear the free list before a full GC---it will be rebuilt afterward. | |
2824 free_list_.Reset(); | |
2825 } | |
2826 | |
2827 | 2810 |
2828 // ----------------------------------------------------------------------------- | 2811 // ----------------------------------------------------------------------------- |
2829 // MapSpace implementation | 2812 // MapSpace implementation |
2830 // TODO(mvstanton): this is weird...the compiler can't make a vtable unless | 2813 // TODO(mvstanton): this is weird...the compiler can't make a vtable unless |
2831 // there is at least one non-inlined virtual function. I would prefer to hide | 2814 // there is at least one non-inlined virtual function. I would prefer to hide |
2832 // the VerifyObject definition behind VERIFY_HEAP. | 2815 // the VerifyObject definition behind VERIFY_HEAP. |
2833 | 2816 |
2834 void MapSpace::VerifyObject(HeapObject* object) { | 2817 void MapSpace::VerifyObject(HeapObject* object) { |
2835 CHECK(object->IsMap()); | 2818 CHECK(object->IsMap()); |
2836 } | 2819 } |
(...skipping 352 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3189 object->ShortPrint(); | 3172 object->ShortPrint(); |
3190 PrintF("\n"); | 3173 PrintF("\n"); |
3191 } | 3174 } |
3192 printf(" --------------------------------------\n"); | 3175 printf(" --------------------------------------\n"); |
3193 printf(" Marked: %x, LiveCount: %x\n", mark_size, LiveBytes()); | 3176 printf(" Marked: %x, LiveCount: %x\n", mark_size, LiveBytes()); |
3194 } | 3177 } |
3195 | 3178 |
3196 #endif // DEBUG | 3179 #endif // DEBUG |
3197 | 3180 |
3198 } } // namespace v8::internal | 3181 } } // namespace v8::internal |
OLD | NEW |