@Override
 public void visitLdcInsn(final Object cst) {
   checkStartCode();
   checkEndCode();
   checkLDCConstant(cst);
   super.visitLdcInsn(cst);
   ++insnCount;
 }
 @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 (int i = 0; i < bsmArgs.length; i++) {
     checkLDCConstant(bsmArgs[i]);
   }
   super.visitInvokeDynamicInsn(name, desc, bsm, bsmArgs);
   ++insnCount;
 }