예제 #1
0
 @Override
 public void visitMethodInsn(final int opcode, final String owner,
         final String name, final String desc) {
     checkStartCode();
     checkEndCode();
     checkOpcode(opcode, 5);
     if (opcode != Opcodes.INVOKESPECIAL || !"<init>".equals(name)) {
         checkMethodIdentifier(version, name, "name");
     }
     checkInternalName(owner, "owner");
     checkMethodDesc(desc);
     super.visitMethodInsn(opcode, owner, name, desc);
     ++insnCount;
 }
예제 #2
0
 @Override
 public void visitInvokeDynamicInsn(String name, String desc, Handle bsm,
         Object... bsmArgs) {
     checkStartCode();
     checkEndCode();
     checkMethodIdentifier(version, name, "name");
     checkMethodDesc(desc);
     if (bsm.getTag() != Opcodes.H_INVOKESTATIC
             && bsm.getTag() != Opcodes.H_NEWINVOKESPECIAL) {
         throw new IllegalArgumentException("invalid handle tag "
                 + bsm.getTag());
     }
     for (Object bsmArg : bsmArgs) {
         checkLDCConstant(bsmArg);
     }
     super.visitInvokeDynamicInsn(name, desc, bsm, bsmArgs);
     ++insnCount;
 }