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 |