Mercurial > hg > truffle
diff src/share/vm/prims/methodHandleWalk.cpp @ 2356:72dee110246f
6839872: remove implementation inheritance from JSR 292 APIs
Summary: consolidate runtime support in java.dyn.MethodHandleNatives; include transitional compatibility logic
Reviewed-by: twisti
author | jrose |
---|---|
date | Fri, 11 Mar 2011 22:33:47 -0800 |
parents | c5a923563727 |
children | 8033953d67ff |
line wrap: on
line diff
--- a/src/share/vm/prims/methodHandleWalk.cpp Fri Mar 11 21:19:15 2011 -0800 +++ b/src/share/vm/prims/methodHandleWalk.cpp Fri Mar 11 22:33:47 2011 -0800 @@ -100,7 +100,6 @@ BasicType MethodHandleChain::compute_bound_arg_type(oop target, methodOop m, int arg_slot, TRAPS) { // There is no direct indication of whether the argument is primitive or not. // It is implied by the _vmentry code, and by the MethodType of the target. - // FIXME: Make it explicit MethodHandleImpl refactors out from MethodHandle BasicType arg_type = T_VOID; if (target != NULL) { oop mtype = java_dyn_MethodHandle::type(target); @@ -960,6 +959,13 @@ if (m == NULL) { // Get the intrinsic methodOop. m = vmIntrinsics::method_for(iid); + if (m == NULL && iid == vmIntrinsics::_checkSpreadArgument && AllowTransitionalJSR292) { + m = vmIntrinsics::method_for(vmIntrinsics::_checkSpreadArgument_TRANS); + } + if (m == NULL) { + ArgToken zero; + lose(vmIntrinsics::name_at(iid), CHECK_(zero)); + } } klassOop klass = m->method_holder();