Mercurial > hg > truffle
comparison src/share/vm/interpreter/bytecode.cpp @ 1135:e66fd840cb6b
6893081: method handle & invokedynamic code needs additional cleanup (post 6815692, 6858164)
Summary: During the work for 6829187 we have fixed a number of basic bugs which are logically grouped with 6815692 and 6858164 but which must be reviewed and pushed separately.
Reviewed-by: kvn, never
author | twisti |
---|---|
date | Mon, 04 Jan 2010 18:38:08 +0100 |
parents | bd02caa94611 |
children | c18cbe5936b8 ab102d5d923e |
comparison
equal
deleted
inserted
replaced
1134:0910903272e5 | 1135:e66fd840cb6b |
---|---|
100 methodHandle Bytecode_invoke::static_target(TRAPS) { | 100 methodHandle Bytecode_invoke::static_target(TRAPS) { |
101 methodHandle m; | 101 methodHandle m; |
102 KlassHandle resolved_klass; | 102 KlassHandle resolved_klass; |
103 constantPoolHandle constants(THREAD, _method->constants()); | 103 constantPoolHandle constants(THREAD, _method->constants()); |
104 | 104 |
105 if (adjusted_invoke_code() != Bytecodes::_invokeinterface) { | 105 if (adjusted_invoke_code() == Bytecodes::_invokedynamic) { |
106 LinkResolver::resolve_dynamic_method(m, resolved_klass, constants, index(), CHECK_(methodHandle())); | |
107 } else if (adjusted_invoke_code() != Bytecodes::_invokeinterface) { | |
106 LinkResolver::resolve_method(m, resolved_klass, constants, index(), CHECK_(methodHandle())); | 108 LinkResolver::resolve_method(m, resolved_klass, constants, index(), CHECK_(methodHandle())); |
107 } else { | 109 } else { |
108 LinkResolver::resolve_interface_method(m, resolved_klass, constants, index(), CHECK_(methodHandle())); | 110 LinkResolver::resolve_interface_method(m, resolved_klass, constants, index(), CHECK_(methodHandle())); |
109 } | 111 } |
110 return m; | 112 return m; |