Index: runtime/vm/flow_graph_builder.h |
=================================================================== |
--- runtime/vm/flow_graph_builder.h (revision 27690) |
+++ runtime/vm/flow_graph_builder.h (working copy) |
@@ -98,13 +98,14 @@ |
// Build a flow graph from a parsed function's AST. |
-class FlowGraphBuilder: public ValueObject { |
+class FlowGraphBuilder: public ZoneAllocated { |
public: |
// The inlining context is NULL if not inlining. The osr_id is the deopt |
// id of the OSR entry or Isolate::kNoDeoptId if not compiling for OSR. |
FlowGraphBuilder(ParsedFunction* parsed_function, |
const Array& ic_data_array, |
InlineExitCollector* exit_collector, |
+ GrowableArray<const Field*>* guarded_fields, |
intptr_t osr_id); |
FlowGraph* BuildGraph(); |
@@ -147,6 +148,12 @@ |
bool IsInlining() const { return (exit_collector_ != NULL); } |
InlineExitCollector* exit_collector() const { return exit_collector_; } |
+ GrowableArray<const Field*>* guarded_fields() const { |
+ return guarded_fields_; |
+ } |
+ |
+ void AddToGuardedFields(const Field& field) const; |
+ |
intptr_t args_pushed() const { return args_pushed_; } |
void add_args_pushed(intptr_t n) { args_pushed_ += n; } |
@@ -169,6 +176,7 @@ |
const intptr_t num_non_copied_params_; |
const intptr_t num_stack_locals_; // Does not include any parameters. |
InlineExitCollector* const exit_collector_; |
+ GrowableArray<const Field*>* guarded_fields_; |
intptr_t last_used_block_id_; |
intptr_t context_level_; |