Print this page
rev 1024 : imported patch indy-cleanup-6893081.patch

Split Close
Expand all
Collapse all
          --- old/src/share/vm/interpreter/bytecode.cpp
          +++ new/src/share/vm/interpreter/bytecode.cpp
↓ open down ↓ 94 lines elided ↑ open up ↑
  95   95    rts.iterate();
  96   96    return rts.type();
  97   97  }
  98   98  
  99   99  
 100  100  methodHandle Bytecode_invoke::static_target(TRAPS) {
 101  101    methodHandle m;
 102  102    KlassHandle resolved_klass;
 103  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  108      LinkResolver::resolve_method(m, resolved_klass, constants, index(), CHECK_(methodHandle()));
 107  109    } else {
 108  110      LinkResolver::resolve_interface_method(m, resolved_klass, constants, index(), CHECK_(methodHandle()));
 109  111    }
 110  112    return m;
 111  113  }
 112  114  
 113  115  
 114  116  int Bytecode_invoke::index() const {
 115  117    // Note:  Rewriter::rewrite changes the Java_u2 of an invokedynamic to a native_u4,
↓ open down ↓ 89 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX