| 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 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 153 | 153 |
| 154 void DelayWeakProperty(RawWeakProperty* raw_weak) { | 154 void DelayWeakProperty(RawWeakProperty* raw_weak) { |
| 155 RawObject* raw_key = raw_weak->ptr()->key_; | 155 RawObject* raw_key = raw_weak->ptr()->key_; |
| 156 DelaySet::iterator it = delay_set_.find(raw_key); | 156 DelaySet::iterator it = delay_set_.find(raw_key); |
| 157 if (it != delay_set_.end()) { | 157 if (it != delay_set_.end()) { |
| 158 ASSERT(raw_key->IsWatched()); | 158 ASSERT(raw_key->IsWatched()); |
| 159 } else { | 159 } else { |
| 160 ASSERT(!raw_key->IsWatched()); | 160 ASSERT(!raw_key->IsWatched()); |
| 161 raw_key->SetWatchedBit(); | 161 raw_key->SetWatchedBit(); |
| 162 } | 162 } |
| 163 delay_set_.insert(std::make_pair(raw_key, raw_weak)); | 163 delay_set_.insert(DelaySet::value_type(raw_key, raw_weak)); |
| 164 } | 164 } |
| 165 | 165 |
| 166 void Finalize() { | 166 void Finalize() { |
| 167 DelaySet::iterator it = delay_set_.begin(); | 167 DelaySet::iterator it = delay_set_.begin(); |
| 168 for (; it != delay_set_.end(); ++it) { | 168 for (; it != delay_set_.end(); ++it) { |
| 169 WeakProperty::Clear(it->second); | 169 WeakProperty::Clear(it->second); |
| 170 } | 170 } |
| 171 if (!visit_function_code_) { | 171 if (!visit_function_code_) { |
| 172 DetachCode(); | 172 DetachCode(); |
| 173 } | 173 } |
| (...skipping 322 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 496 MarkingWeakVisitor mark_weak; | 496 MarkingWeakVisitor mark_weak; |
| 497 IterateWeakRoots(isolate, &mark_weak, invoke_api_callbacks); | 497 IterateWeakRoots(isolate, &mark_weak, invoke_api_callbacks); |
| 498 mark.Finalize(); | 498 mark.Finalize(); |
| 499 ProcessWeakTables(page_space); | 499 ProcessWeakTables(page_space); |
| 500 ProcessObjectIdTable(isolate); | 500 ProcessObjectIdTable(isolate); |
| 501 | 501 |
| 502 Epilogue(isolate, invoke_api_callbacks); | 502 Epilogue(isolate, invoke_api_callbacks); |
| 503 } | 503 } |
| 504 | 504 |
| 505 } // namespace dart | 505 } // namespace dart |
| OLD | NEW |