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

Unified Diff: runtime/vm/kernel_binary.cc

Issue 2787463003: Step #2 in streaming the kernel flowgraph (Closed)
Patch Set: Created 3 years, 9 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 | « no previous file | runtime/vm/kernel_binary_flowgraph.h » ('j') | runtime/vm/kernel_binary_flowgraph.cc » ('J')
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 48f62684b4df816c3d5156da8a75f5b355e6f52d..1ad1089271dbab25317a288c28345d7b11f4c208 100644
--- a/runtime/vm/kernel_binary.cc
+++ b/runtime/vm/kernel_binary.cc
@@ -512,7 +512,10 @@ Expression* Expression::ReadFrom(Reader* reader) {
InvalidExpression* InvalidExpression::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
- return new InvalidExpression();
+ InvalidExpression* invalidExpression = new InvalidExpression();
+ invalidExpression->kernel_offset_ =
+ reader->offset() - 1; // -1 to include tag byte.
+ return invalidExpression;
}
@@ -742,7 +745,10 @@ AsExpression* AsExpression::ReadFrom(Reader* reader) {
StringLiteral* StringLiteral::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
- return new StringLiteral(Reference::ReadStringFrom(reader));
+ intptr_t offset = reader->offset() - 1; // -1 to include tag byte.
+ StringLiteral* lit = new StringLiteral(Reference::ReadStringFrom(reader));
+ lit->kernel_offset_ = offset;
+ return lit;
}
@@ -755,6 +761,7 @@ BigintLiteral* BigintLiteral::ReadFrom(Reader* reader) {
IntLiteral* IntLiteral::ReadFrom(Reader* reader, bool is_negative) {
TRACE_READ_OFFSET();
IntLiteral* literal = new IntLiteral();
+ literal->kernel_offset_ = reader->offset() - 1; // -1 to include tag byte.
literal->value_ = is_negative ? -static_cast<int64_t>(reader->ReadUInt())
: reader->ReadUInt();
return literal;
@@ -764,6 +771,7 @@ IntLiteral* IntLiteral::ReadFrom(Reader* reader, bool is_negative) {
IntLiteral* IntLiteral::ReadFrom(Reader* reader, uint8_t payload) {
TRACE_READ_OFFSET();
IntLiteral* literal = new IntLiteral();
+ literal->kernel_offset_ = reader->offset() - 1; // -1 to include tag byte.
literal->value_ = static_cast<int32_t>(payload) - SpecializedIntLiteralBias;
return literal;
}
@@ -780,6 +788,7 @@ DoubleLiteral* DoubleLiteral::ReadFrom(Reader* reader) {
BoolLiteral* BoolLiteral::ReadFrom(Reader* reader, bool value) {
TRACE_READ_OFFSET();
BoolLiteral* lit = new BoolLiteral();
+ lit->kernel_offset_ = reader->offset() - 1; // -1 to include tag byte.
lit->value_ = value;
return lit;
}
@@ -787,7 +796,9 @@ BoolLiteral* BoolLiteral::ReadFrom(Reader* reader, bool value) {
NullLiteral* NullLiteral::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
- return new NullLiteral();
+ NullLiteral* lit = new NullLiteral();
+ lit->kernel_offset_ = reader->offset() - 1; // -1 to include tag byte.
+ return lit;
}
@@ -809,7 +820,9 @@ TypeLiteral* TypeLiteral::ReadFrom(Reader* reader) {
ThisExpression* ThisExpression::ReadFrom(Reader* reader) {
TRACE_READ_OFFSET();
- return new ThisExpression();
+ ThisExpression* this_expr = new ThisExpression();
+ this_expr->kernel_offset_ = reader->offset() - 1; // -1 to include tag byte.
+ return this_expr;
}
« no previous file with comments | « no previous file | runtime/vm/kernel_binary_flowgraph.h » ('j') | runtime/vm/kernel_binary_flowgraph.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698