< prev index next >

src/hotspot/share/opto/bytecodeInfo.cpp

Print this page
*** 84,14 ***
  static bool is_init_with_ea(ciMethod* callee_method,
                              ciMethod* caller_method, Compile* C) {
    if (!C->do_escape_analysis() || !EliminateAllocations) {
      return false; // EA is off
    }
!   if (callee_method->is_object_initializer()) {
      return true; // constructor
    }
!   if (caller_method->is_object_initializer() &&
        caller_method != C->method() &&
        caller_method->holder()->is_subclass_of(callee_method->holder())) {
      return true; // super constructor is called from inlined constructor
    }
    if (C->eliminate_boxing() && callee_method->is_boxing_method()) {
--- 84,14 ---
  static bool is_init_with_ea(ciMethod* callee_method,
                              ciMethod* caller_method, Compile* C) {
    if (!C->do_escape_analysis() || !EliminateAllocations) {
      return false; // EA is off
    }
!   if (callee_method->is_object_constructor()) {
      return true; // constructor
    }
!   if ((caller_method->is_object_constructor() || caller_method->is_class_initializer()) &&
        caller_method != C->method() &&
        caller_method->holder()->is_subclass_of(callee_method->holder())) {
      return true; // super constructor is called from inlined constructor
    }
    if (C->eliminate_boxing() && callee_method->is_boxing_method()) {
< prev index next >