Mercurial > hg > truffle
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 |