OLD | NEW |
---|---|
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 #include "vm/gc_marker.h" | 5 #include "vm/gc_marker.h" |
6 | 6 |
7 #include <map> | 7 #include <map> |
8 #include <utility> | 8 #include <utility> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
(...skipping 544 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
555 if (raw_obj->IsOldObject() && !raw_obj->IsMarked()) { | 555 if (raw_obj->IsOldObject() && !raw_obj->IsMarked()) { |
556 // Object has become garbage. Replace it will null. | 556 // Object has become garbage. Replace it will null. |
557 *current = Object::null(); | 557 *current = Object::null(); |
558 } | 558 } |
559 } | 559 } |
560 } | 560 } |
561 }; | 561 }; |
562 | 562 |
563 | 563 |
564 void GCMarker::ProcessObjectIdTable(Isolate* isolate) { | 564 void GCMarker::ProcessObjectIdTable(Isolate* isolate) { |
565 #ifndef PRODUCT | |
rmacnak
2016/02/04 21:26:41
+ FLAG_support_service
Cutch
2016/02/04 22:12:52
Done.
| |
565 ObjectIdRingClearPointerVisitor visitor(isolate); | 566 ObjectIdRingClearPointerVisitor visitor(isolate); |
566 ObjectIdRing* ring = isolate->object_id_ring(); | 567 ObjectIdRing* ring = isolate->object_id_ring(); |
567 ASSERT(ring != NULL); | 568 ASSERT(ring != NULL); |
568 ring->VisitPointers(&visitor); | 569 ring->VisitPointers(&visitor); |
570 #endif // !PRODUCT | |
569 } | 571 } |
570 | 572 |
571 | 573 |
572 class MarkTask : public ThreadPool::Task { | 574 class MarkTask : public ThreadPool::Task { |
573 public: | 575 public: |
574 MarkTask(GCMarker* marker, | 576 MarkTask(GCMarker* marker, |
575 Isolate* isolate, | 577 Isolate* isolate, |
576 Heap* heap, | 578 Heap* heap, |
577 PageSpace* page_space, | 579 PageSpace* page_space, |
578 MarkingStack* marking_stack, | 580 MarkingStack* marking_stack, |
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
742 barrier.Exit(); | 744 barrier.Exit(); |
743 } | 745 } |
744 delay_set.ClearReferences(); | 746 delay_set.ClearReferences(); |
745 ProcessWeakTables(page_space); | 747 ProcessWeakTables(page_space); |
746 ProcessObjectIdTable(isolate); | 748 ProcessObjectIdTable(isolate); |
747 } | 749 } |
748 Epilogue(isolate, invoke_api_callbacks); | 750 Epilogue(isolate, invoke_api_callbacks); |
749 } | 751 } |
750 | 752 |
751 } // namespace dart | 753 } // namespace dart |
OLD | NEW |