public void visitInvokeDynamicInsn(String name, String desc, Handle bsm, Object... bsmArgs) { mv1.visitInvokeDynamicInsn(name, desc, bsm, bsmArgs); mv2.visitInvokeDynamicInsn(name, desc, bsm, bsmArgs); }
public void visitInvokeDynamicInsn(String name, String desc, Handle bsm, Object... bsmArgs) { mv1.visitInvokeDynamicInsn(name, desc, bsm, bsmArgs); mv2.visitInvokeDynamicInsn(name, desc, bsm, bsmArgs); }
/** * Visits an invokedynamic instruction. * * @param name the method's name. * @param descriptor the method's descriptor (see {@link Type}). * @param bootstrapMethodHandle the bootstrap method. * @param bootstrapMethodArguments the bootstrap method constant arguments. Each argument must be * an {@link Integer}, {@link Float}, {@link Long}, {@link Double}, {@link String}, {@link * Type}, {@link Handle} or {@link ConstantDynamic} value. This method is allowed to modify * the content of the array so a caller should expect that this array may change. */ public void visitInvokeDynamicInsn( final String name, final String descriptor, final Handle bootstrapMethodHandle, final Object... bootstrapMethodArguments) { if (api < Opcodes.ASM5) { throw new UnsupportedOperationException(REQUIRES_ASM5); } if (mv != null) { mv.visitInvokeDynamicInsn(name, descriptor, bootstrapMethodHandle, bootstrapMethodArguments); } }
@Override public void visitInvokeDynamicInsn(String name, String descriptor, Handle bsm, Object... bsmArgs) { super.visitInvokeDynamicInsn(name, descriptor, bsm, bsmArgs); skipNextFrame = false; }
throw new RuntimeException(); asm.visitInvokeDynamicInsn(ice.name, ice.proto.getDesc(), (Handle) Dex2Asm.convertConstantValue(ice.handle), Dex2Asm.convertConstantValues(ice.bsmArgs));
++index; mv.visitInvokeDynamicInsn(m.name(), toTypeDesc(m), new Handle(i.getHandleTag(), slashify(bsm.declaringClass().getName()), bsm.name(), toTypeDesc(bsm), bsm.declaringClass().isInterface()), argsArray);
bootstrapMethodOffset += 2; methodVisitor.visitInvokeDynamicInsn( name, descriptor, handle, bootstrapMethodArguments); currentOffset += 5;
@Override public void visitInvokeDynamicInsn( final String name, final String descriptor, final Handle bootstrapMethodHandle, final Object... bootstrapMethodArguments) { minSize += 5; maxSize += 5; super.visitInvokeDynamicInsn(name, descriptor, bootstrapMethodHandle, bootstrapMethodArguments); }
@Override public void visitInvokeDynamicInsn(String name, String desc, Handle bsm, Object... bsmArgs) { minSize += 5; maxSize += 5; if (mv != null) { mv.visitInvokeDynamicInsn(name, desc, bsm, bsmArgs); } }
public void visitInvokeDynamicInsn(String name, String desc, Handle bsm, Object... bsmArgs) { errors.add("Use of invalid method instruction in constructor"); super.visitInvokeDynamicInsn(name, desc, bsm, bsmArgs); }
public void visitInvokeDynamicInsn(String name, String desc, Handle bsm, Object... bsmArgs) { errors.add("Use of invalid method instruction in constructor"); super.visitInvokeDynamicInsn(name, desc, bsm, bsmArgs); }
@Override public void visitInvokeDynamicInsn(String name, String desc, Handle bsm, Object... bsmArgs) { mv.visitInvokeDynamicInsn(name, desc, bsm, bsmArgs); visitCall(Opcodes.INVOKEDYNAMIC, desc); }
@Override public void accept(final MethodVisitor methodVisitor) { methodVisitor.visitInvokeDynamicInsn(name, desc, bsm, bsmArgs); acceptAnnotations(methodVisitor); }
@Override public void visitMethodInvocation(MethodInvocation methodInvocation) { List<Object> bootstrapArgs = new ArrayList<>(); bootstrapArgs.add(methodInvocation.isNullSafeGuarded() ? 1 : 0); List<String> argumentNames = visitInvocationArguments(methodInvocation); bootstrapArgs.addAll(argumentNames); currentMethodVisitor.visitInvokeDynamicInsn( methodInvocation.getName().replaceAll("\\.", "#"), goloFunctionSignature(methodInvocation.getArity() + 1), METHOD_INVOCATION_HANDLE, bootstrapArgs.toArray()); }
private void genericBinaryOperator(BinaryOperation binaryOperation) { if (!binaryOperation.isMethodCall()) { String name = binaryOperation.getType().name().toLowerCase(); currentMethodVisitor.visitInvokeDynamicInsn(name, goloFunctionSignature(2), OPERATOR_HANDLE, (Integer) 2); } }
@Override public void visitInvokeDynamicInsn(String name, String descriptor, Handle bootstrapMethodHandle, Object... bootstrapMethodArguments) { savePreviousFrame(); Type deferredReturnType = deferReturnType(descriptor); currentFrame.popStackBySignature(descriptor); if (deferredReturnType != Type.VOID_TYPE) currentFrame.pushStack(deferredReturnType); if (logger.isDebugEnabled()) logger.debug("invokeDynamic " + name + " " + descriptor + " " + bootstrapMethodHandle.getName()); delegate.visitInvokeDynamicInsn(name, descriptor, bootstrapMethodHandle, bootstrapMethodArguments); }
@Override public Void visitDynamicMessageSend_(DynamicMessageSend node) { mv.visitInvokeDynamicInsn(node.functionName(), node.signature() .descriptorString(), BootstrapHandles.bootstrap); return null; }
@Override public void visitUnaryOperation(UnaryOperation unaryOperation) { String name = unaryOperation.getType().name().toLowerCase(); unaryOperation.walk(this); currentMethodVisitor.visitInvokeDynamicInsn(name, goloFunctionSignature(1), OPERATOR_HANDLE, (Integer) 1); }
@Override public final void end(final String element) { ArrayList<?> bsmArgs = (ArrayList<?>) pop(); Handle bsm = (Handle) pop(); String desc = (String) pop(); String name = (String) pop(); getCodeVisitor().visitInvokeDynamicInsn(name, desc, bsm, bsmArgs.toArray()); } }
private void emitInlineCallPrim4General(RascalPrimitive prim, int srcIndex, boolean push) { emitInlineFrameObserve(srcIndex); prepare2(push); mv.visitVarInsn(ALOAD, CF); // currentFrame emitRex(); mv.visitInvokeDynamicInsn(prim.name(), getMethodDescriptor(OBJECT_TYPE, OBJECT_TYPE, OBJECT_TYPE, OBJECT_TYPE, OBJECT_TYPE, FRAME_TYPE, getType(RascalExecutionContext.class)), bootstrapRascalPrimitive()); result(push); }