Index: runtime/vm/kernel_reader.cc |
diff --git a/runtime/vm/kernel_reader.cc b/runtime/vm/kernel_reader.cc |
index 7e8f6f44fb5d5b7767102883c10fd0df805a63f2..5eb64607f79fed167926edfe31ee74b45606b431 100644 |
--- a/runtime/vm/kernel_reader.cc |
+++ b/runtime/vm/kernel_reader.cc |
@@ -170,10 +170,6 @@ void KernelReader::ReadLibrary(Library* kernel_library) { |
TokenPosition::kNoSource)); |
toplevel_class.set_is_cycle_free(); |
library.set_toplevel_class(toplevel_class); |
- if (bootstrapping_) { |
- GrowableObjectArray::Handle(Z, I->object_store()->pending_classes()) |
- .Add(toplevel_class, Heap::kOld); |
- } |
ActiveClassScope active_class_scope(&active_class_, NULL, &toplevel_class); |
// Load toplevel fields. |
@@ -209,6 +205,8 @@ void KernelReader::ReadLibrary(Library* kernel_library) { |
Class* kernel_klass = kernel_library->classes()[i]; |
classes.Add(ReadClass(library, kernel_klass), Heap::kOld); |
Kevin Millikin (Google)
2016/11/21 15:00:11
When bootstrapping, ReadClass is also adding class
kustermann
2016/11/21 15:30:05
Good point. Done.
|
} |
+ |
+ classes.Add(toplevel_class, Heap::kOld); |
} |
@@ -645,7 +643,7 @@ dart::Class& KernelReader::LookupClass(Class* klass) { |
// we do not risk allocating the class again by calling LookupClass |
// recursively from ReadPreliminaryClass for the same class. |
classes_.Insert(klass, handle); |
- if (!handle->is_type_finalized()) { |
+ if (!handle->is_cycle_free()) { |
ReadPreliminaryClass(handle, klass); |
} |
} |