Chromium Code Reviews| 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 |