diff --git a/runtime/vm/dart_api_message.cc b/runtime/vm/dart_api_message.cc index 540434a58aa..2ee1c37bbe5 100644 --- a/runtime/vm/dart_api_message.cc +++ b/runtime/vm/dart_api_message.cc @@ -14,16 +14,12 @@ static const int kNumInitialReferences = 4; ApiMessageReader::ApiMessageReader(const uint8_t* buffer, intptr_t length, - ReAlloc alloc, - bool use_vm_isolate_snapshot) + ReAlloc alloc) : BaseReader(buffer, length), alloc_(alloc), backward_references_(kNumInitialReferences), vm_isolate_references_(kNumInitialReferences), - vm_symbol_references_(NULL), - max_vm_isolate_object_id_( - use_vm_isolate_snapshot ? - Object::vm_isolate_snapshot_object_table().Length() : 0) { + vm_symbol_references_(NULL) { Init(); } @@ -421,8 +417,7 @@ Dart_CObject* ApiMessageReader::ReadVMSymbol(intptr_t object_id) { intptr_t ApiMessageReader::NextAvailableObjectId() const { - return backward_references_.length() + - kMaxPredefinedObjectIds + max_vm_isolate_object_id_; + return backward_references_.length() + kMaxPredefinedObjectIds; } @@ -807,10 +802,6 @@ Dart_CObject* ApiMessageReader::ReadIndexedObject(intptr_t object_id) { return &dynamic_type_marker; } intptr_t index = object_id - kMaxPredefinedObjectIds; - if (index < max_vm_isolate_object_id_) { - return AllocateDartCObjectVmIsolateObj(index); - } - index -= max_vm_isolate_object_id_; ASSERT((0 <= index) && (index < backward_references_.length())); ASSERT(backward_references_[index]->reference() != NULL); return backward_references_[index]->reference(); @@ -861,8 +852,6 @@ void ApiMessageReader::AddBackRef(intptr_t id, Dart_CObject* obj, DeserializeState state) { intptr_t index = (id - kMaxPredefinedObjectIds); - ASSERT(index >= max_vm_isolate_object_id_); - index -= max_vm_isolate_object_id_; ASSERT(index == backward_references_.length()); BackRefNode* node = AllocateBackRefNode(obj, state); ASSERT(node != NULL); @@ -873,8 +862,6 @@ void ApiMessageReader::AddBackRef(intptr_t id, Dart_CObject* ApiMessageReader::GetBackRef(intptr_t id) { ASSERT(id >= kMaxPredefinedObjectIds); intptr_t index = (id - kMaxPredefinedObjectIds); - ASSERT(index >= max_vm_isolate_object_id_); - index -= max_vm_isolate_object_id_; if (index < backward_references_.length()) { return backward_references_[index]->reference(); } @@ -1012,7 +999,7 @@ void ApiMessageWriter::WriteInt64(Dart_CObject* object) { void ApiMessageWriter::WriteInlinedHeader(Dart_CObject* object) { // Write out the serialization header value for this object. - WriteInlinedObjectHeader(SnapshotWriter::FirstObjectId() + object_id_); + WriteInlinedObjectHeader(kMaxPredefinedObjectIds + object_id_); // Mark object with its object id. MarkCObject(object, object_id_); // Advance object id. @@ -1023,7 +1010,7 @@ void ApiMessageWriter::WriteInlinedHeader(Dart_CObject* object) { bool ApiMessageWriter::WriteCObject(Dart_CObject* object) { if (IsCObjectMarked(object)) { intptr_t object_id = GetMarkedCObjectMark(object); - WriteIndexedObject(SnapshotWriter::FirstObjectId() + object_id); + WriteIndexedObject(kMaxPredefinedObjectIds + object_id); return true; } @@ -1058,7 +1045,7 @@ bool ApiMessageWriter::WriteCObject(Dart_CObject* object) { bool ApiMessageWriter::WriteCObjectRef(Dart_CObject* object) { if (IsCObjectMarked(object)) { intptr_t object_id = GetMarkedCObjectMark(object); - WriteIndexedObject(SnapshotWriter::FirstObjectId() + object_id); + WriteIndexedObject(kMaxPredefinedObjectIds + object_id); return true; } @@ -1096,7 +1083,7 @@ bool ApiMessageWriter::WriteForwardedCObject(Dart_CObject* object) { // Write out the serialization header value for this object. intptr_t object_id = GetMarkedCObjectMark(object); - WriteInlinedObjectHeader(SnapshotWriter::FirstObjectId() + object_id); + WriteInlinedObjectHeader(kMaxPredefinedObjectIds + object_id); // Write out the class and tags information. WriteIndexedObject(kArrayCid); WriteTags(0); diff --git a/runtime/vm/dart_api_message.h b/runtime/vm/dart_api_message.h index 8d3836470dd..70d55f9eb75 100644 --- a/runtime/vm/dart_api_message.h +++ b/runtime/vm/dart_api_message.h @@ -48,8 +48,7 @@ class ApiMessageReader : public BaseReader { // recommended. ApiMessageReader(const uint8_t* buffer, intptr_t length, - ReAlloc alloc, - bool use_vm_isolate_snapshot = true); + ReAlloc alloc); ~ApiMessageReader() { } Dart_CObject* ReadMessage(); @@ -147,7 +146,6 @@ class ApiMessageReader : public BaseReader { ApiGrowableArray backward_references_; ApiGrowableArray vm_isolate_references_; Dart_CObject** vm_symbol_references_; - intptr_t max_vm_isolate_object_id_; Dart_CObject type_arguments_marker; Dart_CObject dynamic_type_marker; @@ -202,7 +200,6 @@ class ApiMessageWriter : public BaseWriter { Dart_CObject** forward_list_; intptr_t forward_list_length_; intptr_t forward_id_; - intptr_t max_vm_isolate_object_id_; DISALLOW_COPY_AND_ASSIGN(ApiMessageWriter); }; diff --git a/runtime/vm/snapshot.cc b/runtime/vm/snapshot.cc index 1d6651e1296..a566bc97f4a 100644 --- a/runtime/vm/snapshot.cc +++ b/runtime/vm/snapshot.cc @@ -191,7 +191,8 @@ SnapshotReader::SnapshotReader( typed_data_(TypedData::Handle(isolate)), error_(UnhandledException::Handle(isolate)), max_vm_isolate_object_id_( - Object::vm_isolate_snapshot_object_table().Length()), + (kind == Snapshot::kFull) ? + Object::vm_isolate_snapshot_object_table().Length() : 0), backward_references_(backward_refs) { } @@ -2266,7 +2267,7 @@ ScriptSnapshotWriter::ScriptSnapshotWriter(uint8_t** buffer, kInitialSize, &forward_list_, true), - forward_list_(SnapshotWriter::FirstObjectId()) { + forward_list_(kMaxPredefinedObjectIds) { ASSERT(buffer != NULL); ASSERT(alloc != NULL); } @@ -2324,7 +2325,7 @@ MessageWriter::MessageWriter(uint8_t** buffer, kInitialSize, &forward_list_, can_send_any_object), - forward_list_(SnapshotWriter::FirstObjectId()) { + forward_list_(kMaxPredefinedObjectIds) { ASSERT(buffer != NULL); ASSERT(alloc != NULL); } diff --git a/runtime/vm/snapshot_test.cc b/runtime/vm/snapshot_test.cc index b314513a54a..23c687af4bc 100644 --- a/runtime/vm/snapshot_test.cc +++ b/runtime/vm/snapshot_test.cc @@ -863,7 +863,7 @@ class TestSnapshotWriter : public SnapshotWriter { kInitialSize, &forward_list_, true), - forward_list_(SnapshotWriter::FirstObjectId()) { + forward_list_(kMaxPredefinedObjectIds) { ASSERT(buffer != NULL); ASSERT(alloc != NULL); } @@ -1582,8 +1582,7 @@ TEST_CASE(IntArrayMessage) { ApiNativeScope scope; ApiMessageReader api_reader(buffer, writer.BytesWritten(), - &zone_allocator, - false); + &zone_allocator); Dart_CObject* root = api_reader.ReadMessage(); EXPECT_EQ(Dart_CObject_kArray, root->type); EXPECT_EQ(kArrayLength, root->value.as_array.length);