Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(415)

Unified Diff: runtime/vm/kernel_binary.cc

Issue 2860823002: Introduce classes for string and name indexes (Closed)
Patch Set: Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « runtime/vm/kernel_binary.h ('k') | runtime/vm/kernel_binary_flowgraph.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/kernel_binary.cc
diff --git a/runtime/vm/kernel_binary.cc b/runtime/vm/kernel_binary.cc
index e7b25c9a2347821770517b9c67d3a134431afdec..316e51d84057b32078daaa24c297f568cdb92b64 100644
--- a/runtime/vm/kernel_binary.cc
+++ b/runtime/vm/kernel_binary.cc
@@ -96,7 +96,7 @@ void TypeParameterList::ReadFrom(Reader* reader) {
NamedParameter* NamedParameter::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
- intptr_t name_index = reader->ReadUInt();
+ StringIndex name_index(reader->ReadUInt());
DartType* type = DartType::ReadFrom(reader);
return new NamedParameter(name_index, type);
}
@@ -176,7 +176,7 @@ Library* Library::ReadFrom(Reader* reader) {
kernel_data_size_ = reader->size();
canonical_name_ = reader->ReadCanonicalNameReference();
- name_index_ = reader->ReadUInt();
+ name_index_ = StringIndex(reader->ReadUInt());
import_uri_index_ = reader->CanonicalNameString(canonical_name_);
source_uri_index_ = reader->ReadUInt();
reader->set_current_script_id(source_uri_index_);
@@ -210,7 +210,7 @@ Typedef* Typedef::ReadFrom(Reader* reader) {
canonical_name_ = reader->ReadCanonicalNameReference();
position_ = reader->ReadPosition(false);
- name_index_ = reader->ReadUInt();
+ name_index_ = StringIndex(reader->ReadUInt());
source_uri_index_ = reader->ReadUInt();
type_parameters_.ReadFrom(reader);
type_ = DartType::ReadFrom(reader);
@@ -225,7 +225,7 @@ Class* Class::ReadFrom(Reader* reader) {
canonical_name_ = reader->ReadCanonicalNameReference();
position_ = reader->ReadPosition(false);
is_abstract_ = reader->ReadBool();
- name_index_ = reader->ReadUInt();
+ name_index_ = StringIndex(reader->ReadUInt());
source_uri_index_ = reader->ReadUInt();
reader->set_current_script_id(source_uri_index_);
reader->record_token_position(position_);
@@ -270,9 +270,9 @@ MixinClass* MixinClass::ReadFrom(Reader* reader) {
}
-intptr_t Reference::ReadMemberFrom(Reader* reader, bool allow_null) {
+NameIndex Reference::ReadMemberFrom(Reader* reader, bool allow_null) {
TRACE_READ_OFFSET();
- intptr_t canonical_name = reader->ReadCanonicalNameReference();
+ NameIndex canonical_name = reader->ReadCanonicalNameReference();
if ((canonical_name == -1) && !allow_null) {
FATAL("Expected a valid member reference, but got `null`");
}
@@ -280,9 +280,9 @@ intptr_t Reference::ReadMemberFrom(Reader* reader, bool allow_null) {
}
-intptr_t Reference::ReadClassFrom(Reader* reader, bool allow_null) {
+NameIndex Reference::ReadClassFrom(Reader* reader, bool allow_null) {
TRACE_READ_OFFSET();
- intptr_t canonical_name = reader->ReadCanonicalNameReference();
+ NameIndex canonical_name = reader->ReadCanonicalNameReference();
if ((canonical_name == -1) && !allow_null) {
FATAL("Expected a valid class reference, but got `null`");
}
@@ -290,9 +290,9 @@ intptr_t Reference::ReadClassFrom(Reader* reader, bool allow_null) {
}
-intptr_t Reference::ReadTypedefFrom(Reader* reader) {
+NameIndex Reference::ReadTypedefFrom(Reader* reader) {
TRACE_READ_OFFSET();
- intptr_t canonical_name = reader->ReadCanonicalNameReference();
+ NameIndex canonical_name = reader->ReadCanonicalNameReference();
if (canonical_name == -1) {
FATAL("Expected a valid typedef reference, but got `null`");
}
@@ -667,7 +667,7 @@ Arguments* Arguments::ReadFrom(Reader* reader) {
NamedExpression* NamedExpression::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
- intptr_t name_index = reader->ReadUInt();
+ StringIndex name_index(reader->ReadUInt());
Expression* expression = Expression::ReadFrom(reader);
return new NamedExpression(name_index, expression);
}
@@ -790,7 +790,7 @@ AsExpression* AsExpression::ReadFrom(Reader* reader) {
StringLiteral* StringLiteral::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
intptr_t offset = reader->offset() - 1; // -1 to include tag byte.
- StringLiteral* lit = new StringLiteral(reader->ReadUInt());
+ StringLiteral* lit = new StringLiteral(StringIndex(reader->ReadUInt()));
lit->kernel_offset_ = offset;
return lit;
}
@@ -799,7 +799,7 @@ StringLiteral* StringLiteral::ReadFrom(Reader* reader) {
BigintLiteral* BigintLiteral::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
intptr_t offset = reader->offset() - 1; // -1 to include tag byte.
- BigintLiteral* lit = new BigintLiteral(reader->ReadUInt());
+ BigintLiteral* lit = new BigintLiteral(StringIndex(reader->ReadUInt()));
lit->kernel_offset_ = offset;
return lit;
}
@@ -828,7 +828,7 @@ DoubleLiteral* DoubleLiteral::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
DoubleLiteral* literal = new DoubleLiteral();
literal->kernel_offset_ = reader->offset() - 1; // -1 to include tag byte.
- literal->value_index_ = reader->ReadUInt();
+ literal->value_index_ = StringIndex(reader->ReadUInt());
return literal;
}
@@ -854,7 +854,7 @@ SymbolLiteral* SymbolLiteral::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
SymbolLiteral* lit = new SymbolLiteral();
lit->kernel_offset_ = reader->offset() - 1; // -1 to include tag byte.
- lit->value_index_ = reader->ReadUInt();
+ lit->value_index_ = StringIndex(reader->ReadUInt());
return lit;
}
@@ -1332,7 +1332,7 @@ VariableDeclaration* VariableDeclaration::ReadFromImpl(Reader* reader,
decl->position_ = reader->ReadPosition();
decl->equals_position_ = reader->ReadPosition();
decl->flags_ = reader->ReadFlags();
- decl->name_index_ = reader->ReadUInt();
+ decl->name_index_ = StringIndex(reader->ReadUInt());
decl->type_ = DartType::ReadFrom(reader);
decl->initializer_ = reader->ReadOptional<Expression>();
@@ -1360,7 +1360,7 @@ FunctionDeclaration* FunctionDeclaration::ReadFrom(Reader* reader) {
Name* Name::ReadFrom(Reader* reader) {
- intptr_t name_index = reader->ReadUInt();
+ StringIndex name_index(reader->ReadUInt());
if ((reader->StringLength(name_index) >= 1) &&
(reader->CharacterAt(name_index, 0) == '_')) {
intptr_t library_reference = reader->ReadCanonicalNameReference();
@@ -1423,7 +1423,7 @@ VoidType* VoidType::ReadFrom(Reader* reader) {
InterfaceType* InterfaceType::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
- intptr_t klass_name = Reference::ReadClassFrom(reader);
+ NameIndex klass_name = Reference::ReadClassFrom(reader);
InterfaceType* type = new InterfaceType(klass_name);
type->type_arguments().ReadFromStatic<DartType>(reader);
return type;
@@ -1433,7 +1433,7 @@ InterfaceType* InterfaceType::ReadFrom(Reader* reader) {
InterfaceType* InterfaceType::ReadFrom(Reader* reader,
bool _without_type_arguments_) {
TRACE_READ_OFFSET();
- intptr_t klass_name = Reference::ReadClassFrom(reader);
+ NameIndex klass_name = Reference::ReadClassFrom(reader);
InterfaceType* type = new InterfaceType(klass_name);
ASSERT(_without_type_arguments_);
return type;
@@ -1442,7 +1442,7 @@ InterfaceType* InterfaceType::ReadFrom(Reader* reader,
TypedefType* TypedefType::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
- intptr_t typedef_name = Reference::ReadTypedefFrom(reader);
+ NameIndex typedef_name = Reference::ReadTypedefFrom(reader);
TypedefType* type = new TypedefType(typedef_name);
type->type_arguments().ReadFromStatic<DartType>(reader);
return type;
@@ -1518,13 +1518,13 @@ Program* Program::ReadFrom(Reader* reader) {
// during deserialization.
program->name_table_offset_ = reader->offset();
intptr_t name_count = reader->ReadUInt();
- reader->canonical_name_parents_ = new intptr_t[name_count];
- reader->canonical_name_strings_ = new intptr_t[name_count];
+ reader->canonical_name_parents_ = new NameIndex[name_count];
+ reader->canonical_name_strings_ = new StringIndex[name_count];
for (int i = 0; i < name_count; ++i) {
// The parent name index is biased: 0 is the root name and otherwise N+1 is
// the Nth name.
- reader->canonical_name_parents_[i] = reader->ReadUInt() - 1;
- reader->canonical_name_strings_[i] = reader->ReadUInt();
+ reader->canonical_name_parents_[i] = reader->ReadCanonicalNameReference();
+ reader->canonical_name_strings_[i] = StringIndex(reader->ReadUInt());
}
int libraries = reader->ReadUInt();
@@ -1569,7 +1569,7 @@ FunctionNode* FunctionNode::ReadFrom(Reader* reader) {
TypeParameter* TypeParameter::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
- name_index_ = reader->ReadUInt();
+ name_index_ = StringIndex(reader->ReadUInt());
bound_ = DartType::ReadFrom(reader);
return this;
}
« no previous file with comments | « runtime/vm/kernel_binary.h ('k') | runtime/vm/kernel_binary_flowgraph.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698