Mercurial > hg > truffle
diff src/share/vm/opto/graphKit.cpp @ 1162:d749b1813f40
Merge
author | trims |
---|---|
date | Fri, 15 Jan 2010 14:25:44 -0800 |
parents | 97125851f396 |
children | 7b0e9cba0307 |
line wrap: on
line diff
--- a/src/share/vm/opto/graphKit.cpp Thu Jan 14 15:48:26 2010 -0800 +++ b/src/share/vm/opto/graphKit.cpp Fri Jan 15 14:25:44 2010 -0800 @@ -981,14 +981,19 @@ case Bytecodes::_invokedynamic: case Bytecodes::_invokeinterface: { - bool is_static = (depth == 0); bool ignore; ciBytecodeStream iter(method()); iter.reset_to_bci(bci()); iter.next(); ciMethod* method = iter.get_method(ignore); inputs = method->arg_size_no_receiver(); - if (!is_static) inputs += 1; + // Add a receiver argument, maybe: + if (code != Bytecodes::_invokestatic && + code != Bytecodes::_invokedynamic) + inputs += 1; + // (Do not use ciMethod::arg_size(), because + // it might be an unloaded method, which doesn't + // know whether it is static or not.) int size = method->return_type()->size(); depth = size - inputs; }