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

Unified Diff: runtime/vm/kernel_binary_flowgraph.h

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
Index: runtime/vm/kernel_binary_flowgraph.h
diff --git a/runtime/vm/kernel_binary_flowgraph.h b/runtime/vm/kernel_binary_flowgraph.h
index eb819e26ba3dd8508e464ac01ec66c482e603bc3..a4c5f09ca38b13ab77d9658167c50429c8a75f05 100644
--- a/runtime/vm/kernel_binary_flowgraph.h
+++ b/runtime/vm/kernel_binary_flowgraph.h
@@ -23,26 +23,52 @@ class StreamingFlowGraphBuilder {
const uint8_t* buffer,
intptr_t buffer_length)
: flow_graph_builder_(flowGraph_builder),
- reader_(new kernel::Reader(buffer, buffer_length)) {}
+ reader_(new kernel::Reader(buffer, buffer_length)),
+ string_table_offsets_(NULL),
+ string_table_size_(-1),
+ string_table_entries_read_(0) {}
- virtual ~StreamingFlowGraphBuilder() { delete reader_; }
+ virtual ~StreamingFlowGraphBuilder() {
+ delete reader_;
+ if (string_table_offsets_ != NULL) {
+ delete[] string_table_offsets_;
+ }
+ }
Fragment BuildAt(int64_t kernel_offset);
private:
+ intptr_t GetStringTableOffset(intptr_t index);
+
+ uint32_t ReadUInt();
+ intptr_t ReadListLength();
TokenPosition ReadPosition(bool record = true);
CatchBlock* catch_block();
+ ScopeBuildingResult* scopes();
Fragment DebugStepCheck(TokenPosition position);
Fragment LoadLocal(LocalVariable* variable);
Fragment PushArgument();
Fragment RethrowException(TokenPosition position, int catch_try_index);
+ Fragment ThrowNoSuchMethodError();
+ Fragment Constant(const Object& value);
+ Fragment IntConstant(int64_t value);
+ Fragment BuildInvalidExpression();
+ Fragment BuildThisExpression();
Fragment BuildRethrow();
+ Fragment BuildStringLiteral();
+ Fragment BuildIntLiteral(uint8_t payload);
+ Fragment BuildIntLiteral(bool is_negative);
+ Fragment BuildBoolLiteral(bool value);
+ Fragment BuildNullLiteral();
FlowGraphBuilder* flow_graph_builder_;
kernel::Reader* reader_;
+ intptr_t* string_table_offsets_;
+ intptr_t string_table_size_;
+ intptr_t string_table_entries_read_;
};
} // namespace kernel

Powered by Google App Engine
This is Rietveld 408576698