| Index: runtime/vm/dart.cc
|
| ===================================================================
|
| --- runtime/vm/dart.cc (revision 41169)
|
| +++ runtime/vm/dart.cc (working copy)
|
| @@ -45,21 +45,6 @@
|
| DebugInfo* Dart::pprof_symbol_generator_ = NULL;
|
| ReadOnlyHandles* Dart::predefined_handles_ = NULL;
|
|
|
| -// An object visitor which will mark all visited objects. This is used to
|
| -// premark all objects in the vm_isolate_ heap.
|
| -class PremarkingVisitor : public ObjectVisitor {
|
| - public:
|
| - explicit PremarkingVisitor(Isolate* isolate) : ObjectVisitor(isolate) {}
|
| -
|
| - void VisitObject(RawObject* obj) {
|
| - // RawInstruction objects are premarked on allocation.
|
| - if (!obj->IsMarked()) {
|
| - obj->SetMarkBit();
|
| - }
|
| - }
|
| -};
|
| -
|
| -
|
| // Structure for managing read-only global handles allocation used for
|
| // creating global read-only handles that are pre created and initialized
|
| // for use across all isolates. Having these global pre created handles
|
| @@ -131,7 +116,7 @@
|
| FLAG_old_gen_heap_size * MBInWords);
|
| ObjectStore::Init(vm_isolate_);
|
| TargetCPUFeatures::InitOnce();
|
| - Object::InitOnce();
|
| + Object::InitOnce(vm_isolate_);
|
| ArgumentsDescriptor::InitOnce();
|
| StubCode::InitOnce();
|
| Symbols::InitOnce(vm_isolate_);
|
| @@ -142,11 +127,7 @@
|
| return "SSE2 is required.";
|
| }
|
| #endif
|
| - PremarkingVisitor premarker(vm_isolate_);
|
| - vm_isolate_->heap()->WriteProtect(false);
|
| - ASSERT(vm_isolate_->heap()->UsedInWords(Heap::kNew) == 0);
|
| - vm_isolate_->heap()->IterateOldObjects(&premarker);
|
| - vm_isolate_->heap()->WriteProtect(true);
|
| + Object::FinalizeVMIsolate(vm_isolate_);
|
| }
|
| // There is a planned and known asymmetry here: We enter one scope for the VM
|
| // isolate so that we can allocate the "persistent" scoped handles for the
|
|
|