81 |
81 |
82 static bool is_init_with_ea(ciMethod* callee_method, |
82 static bool is_init_with_ea(ciMethod* callee_method, |
83 ciMethod* caller_method, Compile* C) { |
83 ciMethod* caller_method, Compile* C) { |
84 // True when EA is ON and a java constructor is called or |
84 // True when EA is ON and a java constructor is called or |
85 // a super constructor is called from an inlined java constructor. |
85 // a super constructor is called from an inlined java constructor. |
86 return DoEscapeAnalysis && EliminateAllocations && |
86 return C->do_escape_analysis() && EliminateAllocations && |
87 ( callee_method->is_initializer() || |
87 ( callee_method->is_initializer() || |
88 (caller_method->is_initializer() && |
88 (caller_method->is_initializer() && |
89 caller_method != C->method() && |
89 caller_method != C->method() && |
90 caller_method->holder()->is_subclass_of(callee_method->holder())) |
90 caller_method->holder()->is_subclass_of(callee_method->holder())) |
91 ); |
91 ); |