OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "src/v8.h" | 5 #include "src/v8.h" |
6 | 6 |
7 #include "src/accessors.h" | 7 #include "src/accessors.h" |
8 #include "src/api.h" | 8 #include "src/api.h" |
9 #include "src/base/bits.h" | 9 #include "src/base/bits.h" |
10 #include "src/base/once.h" | 10 #include "src/base/once.h" |
(...skipping 748 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
759 DCHECK(!incremental_marking()->weak_closure_was_overapproximated()); | 759 DCHECK(!incremental_marking()->weak_closure_was_overapproximated()); |
760 OverApproximateWeakClosure("GC interrupt"); | 760 OverApproximateWeakClosure("GC interrupt"); |
761 } | 761 } |
762 | 762 |
763 | 763 |
764 void Heap::OverApproximateWeakClosure(const char* gc_reason) { | 764 void Heap::OverApproximateWeakClosure(const char* gc_reason) { |
765 if (FLAG_trace_incremental_marking) { | 765 if (FLAG_trace_incremental_marking) { |
766 PrintF("[IncrementalMarking] Overapproximate weak closure (%s).\n", | 766 PrintF("[IncrementalMarking] Overapproximate weak closure (%s).\n", |
767 gc_reason); | 767 gc_reason); |
768 } | 768 } |
| 769 |
| 770 GCTracer::Scope gc_scope(tracer(), |
| 771 GCTracer::Scope::MC_INCREMENTAL_WEAKCLOSURE); |
| 772 |
769 { | 773 { |
770 GCCallbacksScope scope(this); | 774 GCCallbacksScope scope(this); |
771 if (scope.CheckReenter()) { | 775 if (scope.CheckReenter()) { |
772 AllowHeapAllocation allow_allocation; | 776 AllowHeapAllocation allow_allocation; |
773 GCTracer::Scope scope(tracer(), GCTracer::Scope::EXTERNAL); | 777 GCTracer::Scope scope(tracer(), GCTracer::Scope::EXTERNAL); |
774 VMState<EXTERNAL> state(isolate_); | 778 VMState<EXTERNAL> state(isolate_); |
775 HandleScope handle_scope(isolate_); | 779 HandleScope handle_scope(isolate_); |
776 CallGCPrologueCallbacks(kGCTypeMarkSweepCompact, kNoGCCallbackFlags); | 780 CallGCPrologueCallbacks(kGCTypeMarkSweepCompact, kNoGCCallbackFlags); |
777 } | 781 } |
778 } | 782 } |
(...skipping 5799 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6578 static_cast<int>(object_sizes_last_time_[index])); | 6582 static_cast<int>(object_sizes_last_time_[index])); |
6579 CODE_AGE_LIST_COMPLETE(ADJUST_LAST_TIME_OBJECT_COUNT) | 6583 CODE_AGE_LIST_COMPLETE(ADJUST_LAST_TIME_OBJECT_COUNT) |
6580 #undef ADJUST_LAST_TIME_OBJECT_COUNT | 6584 #undef ADJUST_LAST_TIME_OBJECT_COUNT |
6581 | 6585 |
6582 MemCopy(object_counts_last_time_, object_counts_, sizeof(object_counts_)); | 6586 MemCopy(object_counts_last_time_, object_counts_, sizeof(object_counts_)); |
6583 MemCopy(object_sizes_last_time_, object_sizes_, sizeof(object_sizes_)); | 6587 MemCopy(object_sizes_last_time_, object_sizes_, sizeof(object_sizes_)); |
6584 ClearObjectStats(); | 6588 ClearObjectStats(); |
6585 } | 6589 } |
6586 } | 6590 } |
6587 } // namespace v8::internal | 6591 } // namespace v8::internal |
OLD | NEW |