@Override
  public void visitEnd() {
    if (myInstrumented) {
      for (String pattern : myPatterns) {
        // checks patterns so we can rely on them being valid at runtime
        try { Pattern.compile(pattern); }
        catch (Exception e) {
          throw new InstrumentationException("Illegal Pattern: " + pattern, e);
        }
      }

      addField(PATTERN_CACHE_NAME, ACC_PRIVATE | ACC_FINAL | ACC_STATIC | ACC_SYNTHETIC, JAVA_UTIL_REGEX_PATTERN);

      if (myDoAssert && !myHasAssertions) {
        addField(ASSERTIONS_DISABLED_NAME, ACC_FINAL | ACC_STATIC | ACC_SYNTHETIC, "Z");
      }

      if (!myHasStaticInitializer) {
        MethodVisitor mv = cv.visitMethod(ACC_STATIC, "<clinit>", "()V", null, null);
        mv.visitCode();

        patchStaticInitializer(mv);

        mv.visitInsn(RETURN);
        mv.visitMaxs(0, 0);
        mv.visitEnd();
      }
    }

    super.visitEnd();
  }
@Override
  public void visitEnd()