equal
deleted
inserted
replaced
209 * @return a method handle which always invokes this call site's current target |
209 * @return a method handle which always invokes this call site's current target |
210 */ |
210 */ |
211 public abstract MethodHandle dynamicInvoker(); |
211 public abstract MethodHandle dynamicInvoker(); |
212 |
212 |
213 /*non-public*/ MethodHandle makeDynamicInvoker() { |
213 /*non-public*/ MethodHandle makeDynamicInvoker() { |
214 MethodHandle getTarget = GET_TARGET.bindReceiver(this); |
214 MethodHandle getTarget = GET_TARGET.bindArgumentL(0, this); |
215 MethodHandle invoker = MethodHandles.exactInvoker(this.type()); |
215 MethodHandle invoker = MethodHandles.exactInvoker(this.type()); |
216 return MethodHandles.foldArguments(invoker, getTarget); |
216 return MethodHandles.foldArguments(invoker, getTarget); |
217 } |
217 } |
218 |
218 |
219 private static final MethodHandle GET_TARGET; |
219 private static final MethodHandle GET_TARGET; |