Index: runtime/vm/isolate.cc |
=================================================================== |
--- runtime/vm/isolate.cc (revision 44579) |
+++ runtime/vm/isolate.cc (working copy) |
@@ -357,7 +357,8 @@ |
} |
// Parse the message. |
- SnapshotReader reader(message->data(), message->len(), Snapshot::kMessage, I); |
+ SnapshotReader reader(message->data(), message->len(), Snapshot::kMessage, |
+ I, zone.GetZone()); |
const Object& msg_obj = Object::Handle(I, reader.ReadObject()); |
if (msg_obj.IsError()) { |
// An error occurred while reading the message. |
@@ -1221,8 +1222,8 @@ |
const Array& args = Array::Handle(Array::New(7)); |
args.SetAt(0, SendPort::Handle(SendPort::New(state->parent_port()))); |
args.SetAt(1, Instance::Handle(func.ImplicitStaticClosure())); |
- args.SetAt(2, Instance::Handle(state->BuildArgs())); |
- args.SetAt(3, Instance::Handle(state->BuildMessage())); |
+ args.SetAt(2, Instance::Handle(state->BuildArgs(zone.GetZone()))); |
+ args.SetAt(3, Instance::Handle(state->BuildMessage(zone.GetZone()))); |
args.SetAt(4, is_spawn_uri ? Bool::True() : Bool::False()); |
args.SetAt(5, ReceivePort::Handle( |
ReceivePort::New(isolate->main_port(), true /* control port */))); |
@@ -1795,12 +1796,13 @@ |
static RawInstance* DeserializeObject(Isolate* isolate, |
+ Zone* zone, |
uint8_t* obj_data, |
intptr_t obj_len) { |
if (obj_data == NULL) { |
return Instance::null(); |
} |
- SnapshotReader reader(obj_data, obj_len, Snapshot::kMessage, isolate); |
+ SnapshotReader reader(obj_data, obj_len, Snapshot::kMessage, isolate, zone); |
const Object& obj = Object::Handle(isolate, reader.ReadObject()); |
ASSERT(!obj.IsError()); |
Instance& instance = Instance::Handle(isolate); |
@@ -1959,13 +1961,14 @@ |
} |
-RawInstance* IsolateSpawnState::BuildArgs() { |
- return DeserializeObject(isolate_, serialized_args_, serialized_args_len_); |
+RawInstance* IsolateSpawnState::BuildArgs(Zone* zone) { |
+ return DeserializeObject(isolate_, zone, |
+ serialized_args_, serialized_args_len_); |
} |
-RawInstance* IsolateSpawnState::BuildMessage() { |
- return DeserializeObject(isolate_, |
+RawInstance* IsolateSpawnState::BuildMessage(Zone* zone) { |
+ return DeserializeObject(isolate_, zone, |
serialized_message_, serialized_message_len_); |
} |