| 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);
|
|
|