src/share/vm/opto/graphKit.cpp

changeset 1572
97125851f396
parent 1534
c5d3d979ae27
child 1601
7b0e9cba0307
equal deleted inserted replaced
1571:4b84186a8248 1572:97125851f396
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

mercurial