| Index: runtime/vm/compiler.cc
 | 
| ===================================================================
 | 
| --- runtime/vm/compiler.cc	(revision 27690)
 | 
| +++ runtime/vm/compiler.cc	(working copy)
 | 
| @@ -270,7 +270,9 @@
 | 
|      LongJump bailout_jump;
 | 
|      isolate->set_long_jump_base(&bailout_jump);
 | 
|      if (setjmp(*bailout_jump.Set()) == 0) {
 | 
| +      FlowGraphBuilder* builder = NULL;
 | 
|        FlowGraph* flow_graph = NULL;
 | 
| +      GrowableArray<const Field*> guarded_fields;
 | 
|        // TimerScope needs an isolate to be properly terminated in case of a
 | 
|        // LongJump.
 | 
|        {
 | 
| @@ -290,11 +292,12 @@
 | 
|          }
 | 
|  
 | 
|          // Build the flow graph.
 | 
| -        FlowGraphBuilder builder(parsed_function,
 | 
| -                                 ic_data_array,
 | 
| -                                 NULL,  // NULL = not inlining.
 | 
| -                                 osr_id);
 | 
| -        flow_graph = builder.BuildGraph();
 | 
| +        builder = new FlowGraphBuilder(parsed_function,
 | 
| +                                       ic_data_array,
 | 
| +                                       NULL,  // NULL = not inlining.
 | 
| +                                       &guarded_fields,
 | 
| +                                       osr_id);
 | 
| +        flow_graph = builder->BuildGraph();
 | 
|        }
 | 
|  
 | 
|        if (FLAG_print_flow_graph ||
 | 
| @@ -326,13 +329,12 @@
 | 
|        // Collect all instance fields that are loaded in the graph and
 | 
|        // have non-generic type feedback attached to them that can
 | 
|        // potentially affect optimizations.
 | 
| -      GrowableArray<const Field*> guarded_fields(10);
 | 
|        if (optimized) {
 | 
|          TimerScope timer(FLAG_compiler_stats,
 | 
|                           &CompilerStats::graphoptimizer_timer,
 | 
|                           isolate);
 | 
|  
 | 
| -        FlowGraphOptimizer optimizer(flow_graph, &guarded_fields);
 | 
| +        FlowGraphOptimizer optimizer(flow_graph);
 | 
|          optimizer.ApplyICData();
 | 
|          DEBUG_ASSERT(flow_graph->VerifyUseLists());
 | 
|  
 | 
| @@ -358,7 +360,7 @@
 | 
|            optimizer.ApplyClassIds();
 | 
|            DEBUG_ASSERT(flow_graph->VerifyUseLists());
 | 
|  
 | 
| -          FlowGraphInliner inliner(flow_graph, &guarded_fields);
 | 
| +          FlowGraphInliner inliner(flow_graph);
 | 
|            inliner.Inline();
 | 
|            // Use lists are maintained and validated by the inliner.
 | 
|            DEBUG_ASSERT(flow_graph->VerifyUseLists());
 | 
| 
 |