Index: runtime/vm/object_store.cc |
diff --git a/runtime/vm/object_store.cc b/runtime/vm/object_store.cc |
index 220b13037f45b68359138bce6e6cf96bb8201333..e70c76ada45ec6e7998aaf4d878f9fa15fe6b127 100644 |
--- a/runtime/vm/object_store.cc |
+++ b/runtime/vm/object_store.cc |
@@ -116,7 +116,9 @@ void ObjectStore::Init(Isolate* isolate) { |
bool ObjectStore::PreallocateObjects() { |
- Isolate* isolate = Isolate::Current(); |
+ Thread* thread = Thread::Current(); |
+ Isolate* isolate = thread->isolate(); |
+ Zone* zone = thread->zone(); |
ASSERT(isolate != NULL && isolate->object_store() == this); |
if (this->stack_overflow() != Instance::null()) { |
ASSERT(this->out_of_memory() != Instance::null()); |
@@ -160,14 +162,14 @@ bool ObjectStore::PreallocateObjects() { |
// pre-allocated OutOfMemoryError. |
const UnhandledException& unhandled_exception = UnhandledException::Handle( |
UnhandledException::New(Instance::Cast(result), |
- Stacktrace::Handle(isolate))); |
+ Stacktrace::Handle(zone))); |
set_preallocated_unhandled_exception(unhandled_exception); |
- const Array& code_array = Array::Handle(isolate, |
+ const Array& code_array = Array::Handle(zone, |
Array::New(Stacktrace::kPreallocatedStackdepth, Heap::kOld)); |
- const Array& pc_offset_array = Array::Handle(isolate, |
+ const Array& pc_offset_array = Array::Handle(zone, |
Array::New(Stacktrace::kPreallocatedStackdepth, Heap::kOld)); |
- const Stacktrace& stack_trace = Stacktrace::Handle(isolate, |
+ const Stacktrace& stack_trace = Stacktrace::Handle(zone, |
Stacktrace::New(code_array, pc_offset_array)); |
// Expansion of inlined functions requires additional memory at run time, |
// avoid it. |
@@ -179,12 +181,14 @@ bool ObjectStore::PreallocateObjects() { |
void ObjectStore::InitKnownObjects() { |
- Isolate* isolate = Isolate::Current(); |
+ Thread* thread = Thread::Current(); |
+ Zone* zone = thread->zone(); |
+ Isolate* isolate = thread->isolate(); |
ASSERT(isolate != NULL && isolate->object_store() == this); |
const Library& async_lib = Library::Handle(async_library()); |
ASSERT(!async_lib.IsNull()); |
- Class& cls = Class::Handle(isolate); |
+ Class& cls = Class::Handle(zone); |
cls = async_lib.LookupClass(Symbols::Future()); |
ASSERT(!cls.IsNull()); |
set_future_class(cls); |