hotspot/src/share/vm/opto/graphKit.cpp
changeset 4566 b363f6ef4068
parent 4469 2adc28d44986
child 4637 af4d405aacc1
equal deleted inserted replaced
4565:cbb3fed38514 4566:b363f6ef4068
   979   case Bytecodes::_invokespecial:
   979   case Bytecodes::_invokespecial:
   980   case Bytecodes::_invokestatic:
   980   case Bytecodes::_invokestatic:
   981   case Bytecodes::_invokedynamic:
   981   case Bytecodes::_invokedynamic:
   982   case Bytecodes::_invokeinterface:
   982   case Bytecodes::_invokeinterface:
   983     {
   983     {
   984       bool is_static = (depth == 0);
       
   985       bool ignore;
   984       bool ignore;
   986       ciBytecodeStream iter(method());
   985       ciBytecodeStream iter(method());
   987       iter.reset_to_bci(bci());
   986       iter.reset_to_bci(bci());
   988       iter.next();
   987       iter.next();
   989       ciMethod* method = iter.get_method(ignore);
   988       ciMethod* method = iter.get_method(ignore);
   990       inputs = method->arg_size_no_receiver();
   989       inputs = method->arg_size_no_receiver();
   991       if (!is_static)  inputs += 1;
   990       // Add a receiver argument, maybe:
       
   991       if (code != Bytecodes::_invokestatic &&
       
   992           code != Bytecodes::_invokedynamic)
       
   993         inputs += 1;
       
   994       // (Do not use ciMethod::arg_size(), because
       
   995       // it might be an unloaded method, which doesn't
       
   996       // know whether it is static or not.)
   992       int size = method->return_type()->size();
   997       int size = method->return_type()->size();
   993       depth = size - inputs;
   998       depth = size - inputs;
   994     }
   999     }
   995     break;
  1000     break;
   996 
  1001