src/share/vm/interpreter/interpreter.cpp

changeset 1494
389049f3f393
parent 1335
9987d9d5eb0e
child 1570
e66fd840cb6b
     1.1 --- a/src/share/vm/interpreter/interpreter.cpp	Fri Oct 30 10:12:52 2009 -0700
     1.2 +++ b/src/share/vm/interpreter/interpreter.cpp	Fri Oct 30 16:22:59 2009 -0700
     1.3 @@ -314,6 +314,20 @@
     1.4        break;
     1.5      }
     1.6  
     1.7 +   case Bytecodes::_invokedynamic: {
     1.8 +      Thread *thread = Thread::current();
     1.9 +      ResourceMark rm(thread);
    1.10 +      methodHandle mh(thread, method);
    1.11 +      type = Bytecode_invoke_at(mh, bci)->result_type(thread);
    1.12 +      // since the cache entry might not be initialized:
    1.13 +      // (NOT needed for the old calling convension)
    1.14 +      if (!is_top_frame) {
    1.15 +        int index = Bytes::get_native_u4(bcp+1);
    1.16 +        method->constants()->cache()->entry_at(index)->set_parameter_size(callee_parameters);
    1.17 +      }
    1.18 +      break;
    1.19 +    }
    1.20 +
    1.21      case Bytecodes::_ldc   :
    1.22        type = constant_pool_type( method, *(bcp+1) );
    1.23        break;

mercurial