| Index: runtime/vm/raw_object_snapshot.cc
|
| diff --git a/runtime/vm/raw_object_snapshot.cc b/runtime/vm/raw_object_snapshot.cc
|
| index 3a934d5b496f7d9dba67d4c1382ebfb2b3ec000a..1a617bacaf32013d55ff7e5bf5a5f43760b43420 100644
|
| --- a/runtime/vm/raw_object_snapshot.cc
|
| +++ b/runtime/vm/raw_object_snapshot.cc
|
| @@ -77,7 +77,7 @@ RawClass* Class::ReadFrom(SnapshotReader* reader,
|
| cls.set_num_type_arguments(reader->Read<int16_t>());
|
| cls.set_num_own_type_arguments(reader->Read<int16_t>());
|
| cls.set_num_native_fields(reader->Read<uint16_t>());
|
| - cls.set_token_pos(reader->Read<int32_t>());
|
| + cls.set_token_pos(TokenPosition::SnapshotDecode(reader->Read<int32_t>()));
|
| cls.set_state_bits(reader->Read<uint16_t>());
|
|
|
| // Set all the object fields.
|
| @@ -127,7 +127,7 @@ void RawClass::WriteTo(SnapshotWriter* writer,
|
| writer->Write<uint16_t>(ptr()->num_type_arguments_);
|
| writer->Write<uint16_t>(ptr()->num_own_type_arguments_);
|
| writer->Write<uint16_t>(ptr()->num_native_fields_);
|
| - writer->Write<int32_t>(ptr()->token_pos_);
|
| + writer->Write<int32_t>(ptr()->token_pos_.SnapshotEncode());
|
| writer->Write<uint16_t>(ptr()->state_bits_);
|
|
|
| // Write out all the object pointer fields.
|
| @@ -160,7 +160,8 @@ RawUnresolvedClass* UnresolvedClass::ReadFrom(SnapshotReader* reader,
|
| reader->AddBackRef(object_id, &unresolved_class, kIsDeserialized);
|
|
|
| // Set all non object fields.
|
| - unresolved_class.set_token_pos(reader->Read<int32_t>());
|
| + unresolved_class.set_token_pos(
|
| + TokenPosition::SnapshotDecode(reader->Read<int32_t>()));
|
|
|
| // Set all the object fields.
|
| READ_OBJECT_FIELDS(unresolved_class,
|
| @@ -186,7 +187,7 @@ void RawUnresolvedClass::WriteTo(SnapshotWriter* writer,
|
| writer->WriteTags(writer->GetObjectTags(this));
|
|
|
| // Write out all the non object pointer fields.
|
| - writer->Write<int32_t>(ptr()->token_pos_);
|
| + writer->Write<int32_t>(ptr()->token_pos_.SnapshotEncode());
|
|
|
| // Write out all the object pointer fields.
|
| SnapshotWriterVisitor visitor(writer, kAsReference);
|
| @@ -230,7 +231,7 @@ RawType* Type::ReadFrom(SnapshotReader* reader,
|
| reader->AddBackRef(object_id, &type, kIsDeserialized, defer_canonicalization);
|
|
|
| // Set all non object fields.
|
| - type.set_token_pos(reader->Read<int32_t>());
|
| + type.set_token_pos(TokenPosition::SnapshotDecode(reader->Read<int32_t>()));
|
| type.set_type_state(reader->Read<int8_t>());
|
|
|
| // Set all the object fields.
|
| @@ -272,7 +273,7 @@ void RawType::WriteTo(SnapshotWriter* writer,
|
| writer->Write<bool>(typeclass_is_in_fullsnapshot);
|
|
|
| // Write out all the non object pointer fields.
|
| - writer->Write<int32_t>(ptr()->token_pos_);
|
| + writer->Write<int32_t>(ptr()->token_pos_.SnapshotEncode());
|
| writer->Write<int8_t>(ptr()->type_state_);
|
|
|
| // Write out all the object pointer fields.
|
| @@ -304,7 +305,8 @@ RawFunctionType* FunctionType::ReadFrom(SnapshotReader* reader,
|
| defer_canonicalization);
|
|
|
| // Set all non object fields.
|
| - function_type.set_token_pos(reader->Read<int32_t>());
|
| + function_type.set_token_pos(
|
| + TokenPosition::SnapshotDecode(reader->Read<int32_t>()));
|
| function_type.set_type_state(reader->Read<int8_t>());
|
|
|
| // Set all the object fields.
|
| @@ -348,7 +350,7 @@ void RawFunctionType::WriteTo(SnapshotWriter* writer,
|
| writer->Write<bool>(scopeclass_is_in_fullsnapshot);
|
|
|
| // Write out all the non object pointer fields.
|
| - writer->Write<int32_t>(ptr()->token_pos_);
|
| + writer->Write<int32_t>(ptr()->token_pos_.SnapshotEncode());
|
| writer->Write<int8_t>(ptr()->type_state_);
|
|
|
| // Write out all the object pointer fields.
|
| @@ -411,7 +413,8 @@ RawTypeParameter* TypeParameter::ReadFrom(SnapshotReader* reader,
|
| reader->AddBackRef(object_id, &type_parameter, kIsDeserialized);
|
|
|
| // Set all non object fields.
|
| - type_parameter.set_token_pos(reader->Read<int32_t>());
|
| + type_parameter.set_token_pos(
|
| + TokenPosition::SnapshotDecode(reader->Read<int32_t>()));
|
| type_parameter.set_index(reader->Read<int16_t>());
|
| type_parameter.set_type_state(reader->Read<int8_t>());
|
|
|
| @@ -441,7 +444,7 @@ void RawTypeParameter::WriteTo(SnapshotWriter* writer,
|
| writer->WriteTags(writer->GetObjectTags(this));
|
|
|
| // Write out all the non object pointer fields.
|
| - writer->Write<int32_t>(ptr()->token_pos_);
|
| + writer->Write<int32_t>(ptr()->token_pos_.SnapshotEncode());
|
| writer->Write<int16_t>(ptr()->index_);
|
| writer->Write<int8_t>(ptr()->type_state_);
|
|
|
| @@ -797,8 +800,8 @@ RawFunction* Function::ReadFrom(SnapshotReader* reader,
|
| func.set_num_fixed_parameters(reader->Read<int16_t>());
|
| func.set_num_optional_parameters(reader->Read<int16_t>());
|
| func.set_kind_tag(reader->Read<uint32_t>());
|
| - func.set_token_pos(token_pos);
|
| - func.set_end_token_pos(end_token_pos);
|
| + func.set_token_pos(TokenPosition::SnapshotDecode(token_pos));
|
| + func.set_end_token_pos(TokenPosition::SnapshotDecode(end_token_pos));
|
| if (reader->snapshot_code()) {
|
| func.set_usage_counter(0);
|
| func.set_deoptimization_counter(0);
|
| @@ -874,8 +877,8 @@ void RawFunction::WriteTo(SnapshotWriter* writer,
|
| bool is_optimized = Code::IsOptimized(ptr()->code_);
|
|
|
| // Write out all the non object fields.
|
| - writer->Write<int32_t>(ptr()->token_pos_);
|
| - writer->Write<int32_t>(ptr()->end_token_pos_);
|
| + writer->Write<int32_t>(ptr()->token_pos_.SnapshotEncode());
|
| + writer->Write<int32_t>(ptr()->end_token_pos_.SnapshotEncode());
|
| writer->Write<int16_t>(ptr()->num_fixed_parameters_);
|
| writer->Write<int16_t>(ptr()->num_optional_parameters_);
|
| writer->Write<uint32_t>(ptr()->kind_tag_);
|
| @@ -926,12 +929,13 @@ RawField* Field::ReadFrom(SnapshotReader* reader,
|
|
|
| // Set all non object fields.
|
| if (reader->snapshot_code()) {
|
| - field.set_token_pos(0);
|
| + field.set_token_pos(TokenPosition::kNoSource);
|
| ASSERT(!FLAG_use_field_guards);
|
| field.set_guarded_cid(kDynamicCid);
|
| field.set_is_nullable(true);
|
| } else {
|
| - field.set_token_pos(reader->Read<int32_t>());
|
| + field.set_token_pos(
|
| + TokenPosition::SnapshotDecode(reader->Read<int32_t>()));
|
| field.set_guarded_cid(reader->Read<int32_t>());
|
| field.set_is_nullable(reader->Read<int32_t>());
|
| }
|
| @@ -973,7 +977,7 @@ void RawField::WriteTo(SnapshotWriter* writer,
|
|
|
| // Write out all the non object fields.
|
| if (!writer->snapshot_code()) {
|
| - writer->Write<int32_t>(ptr()->token_pos_);
|
| + writer->Write<int32_t>(ptr()->token_pos_.SnapshotEncode());
|
| writer->Write<int32_t>(ptr()->guarded_cid_);
|
| writer->Write<int32_t>(ptr()->is_nullable_);
|
| }
|
| @@ -1960,7 +1964,7 @@ RawContextScope* ContextScope::ReadFrom(SnapshotReader* reader,
|
| *reader->TypeHandle() ^= reader->ReadObjectImpl(kAsInlinedObject);
|
|
|
| // Create a descriptor for 'this' variable.
|
| - context_scope.SetTokenIndexAt(0, 0);
|
| + context_scope.SetTokenIndexAt(0, TokenPosition::kMinSource);
|
| context_scope.SetNameAt(0, Symbols::This());
|
| context_scope.SetIsFinalAt(0, true);
|
| context_scope.SetIsConstAt(0, false);
|
| @@ -2209,7 +2213,8 @@ RawLanguageError* LanguageError::ReadFrom(SnapshotReader* reader,
|
| reader->AddBackRef(object_id, &language_error, kIsDeserialized);
|
|
|
| // Set all non object fields.
|
| - language_error.set_token_pos(reader->Read<int32_t>());
|
| + language_error.set_token_pos(
|
| + TokenPosition::SnapshotDecode(reader->Read<int32_t>()));
|
| language_error.set_report_after_token(reader->Read<bool>());
|
| language_error.set_kind(reader->Read<uint8_t>());
|
|
|
| @@ -2236,7 +2241,7 @@ void RawLanguageError::WriteTo(SnapshotWriter* writer,
|
| writer->WriteTags(writer->GetObjectTags(this));
|
|
|
| // Write out all the non object fields.
|
| - writer->Write<int32_t>(ptr()->token_pos_);
|
| + writer->Write<int32_t>(ptr()->token_pos_.SnapshotEncode());
|
| writer->Write<bool>(ptr()->report_after_token_);
|
| writer->Write<uint8_t>(ptr()->kind_);
|
|
|
|
|