Index: runtime/vm/flow_graph_compiler.h |
diff --git a/runtime/vm/flow_graph_compiler.h b/runtime/vm/flow_graph_compiler.h |
index 536720e2ac7c4059318294e362ff030df763ae9a..19836136e28ca6dbdd3850924c8d7a9a9f43059f 100644 |
--- a/runtime/vm/flow_graph_compiler.h |
+++ b/runtime/vm/flow_graph_compiler.h |
@@ -662,6 +662,17 @@ class FlowGraphCompiler : public ValueObject { |
void FrameStateClear(); |
#endif |
+ // This struct contains either function or code, the other one being NULL. |
+ struct StaticCallsStruct { |
Ivan Posva
2015/08/20 23:53:36
This struct has a constructor, shouldn't it be a c
srdjan
2015/08/21 16:56:14
This is a pattern that we use throughout the VM. D
|
+ intptr_t offset; |
+ const Function* function; // Can be NULL. |
+ const Code* code; // Can be NULL. |
+ StaticCallsStruct(intptr_t offset_arg, |
+ const Function* function_arg, |
+ const Code* code_arg) |
+ : offset(offset_arg), function(function_arg), code(code_arg) {} |
Ivan Posva
2015/08/20 23:53:36
How about asserting that the handles being passed
srdjan
2015/08/21 16:56:14
Thanks, will add checks for zone handles in next C
|
+ }; |
+ |
Isolate* isolate_; |
Zone* zone_; |
Assembler* assembler_; |
@@ -683,11 +694,10 @@ class FlowGraphCompiler : public ValueObject { |
GrowableArray<BlockInfo*> block_info_; |
GrowableArray<CompilerDeoptInfo*> deopt_infos_; |
GrowableArray<SlowPathCode*> slow_path_code_; |
- // Stores: [code offset, function or null, null(code)]. |
// Stores static call targets as well as stub targets. |
// TODO(srdjan): Evaluate if we should store allocation stub targets into a |
// separate table? |
- const GrowableObjectArray& static_calls_target_table_; |
+ GrowableArray<StaticCallsStruct> static_calls_target_table_; |
const bool is_optimizing_; |
// Set to true if optimized code has IC calls. |
bool may_reoptimize_; |