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;