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;