comparison src/share/vm/interpreter/interpreter.cpp @ 1059:389049f3f393

6858164: invokedynamic code needs some cleanup (post-6655638) Summary: Fix several crashers, remove needless paths for boxed-style bootstrap method call, refactor & simplify APIs for rewriter constantPoolOop, remove sun.dyn.CallSiteImpl Reviewed-by: kvn
author jrose
date Fri, 30 Oct 2009 16:22:59 -0700
parents 9987d9d5eb0e
children e66fd840cb6b
comparison
equal deleted inserted replaced
1058:73a726751507 1059:389049f3f393
307 type = Bytecode_invoke_at(mh, bci)->result_type(thread); 307 type = Bytecode_invoke_at(mh, bci)->result_type(thread);
308 // since the cache entry might not be initialized: 308 // since the cache entry might not be initialized:
309 // (NOT needed for the old calling convension) 309 // (NOT needed for the old calling convension)
310 if (!is_top_frame) { 310 if (!is_top_frame) {
311 int index = Bytes::get_native_u2(bcp+1); 311 int index = Bytes::get_native_u2(bcp+1);
312 method->constants()->cache()->entry_at(index)->set_parameter_size(callee_parameters);
313 }
314 break;
315 }
316
317 case Bytecodes::_invokedynamic: {
318 Thread *thread = Thread::current();
319 ResourceMark rm(thread);
320 methodHandle mh(thread, method);
321 type = Bytecode_invoke_at(mh, bci)->result_type(thread);
322 // since the cache entry might not be initialized:
323 // (NOT needed for the old calling convension)
324 if (!is_top_frame) {
325 int index = Bytes::get_native_u4(bcp+1);
312 method->constants()->cache()->entry_at(index)->set_parameter_size(callee_parameters); 326 method->constants()->cache()->entry_at(index)->set_parameter_size(callee_parameters);
313 } 327 }
314 break; 328 break;
315 } 329 }
316 330