code: @Override
    public MethodVisitor visitMethod(
        int access, String base, String desc, String signature, String[] exceptions) {
      MethodVisitor mv = cv.visitMethod(access, base, desc, signature, exceptions);
  
      if (mv != null) {
        // We need to compute stackmaps (see
        // AllocationInstrumenter#instrument).  This can't really be
        // done for old bytecode that contains JSR and RET instructions.
        // So, we remove JSRs and RETs.
        JSRInlinerAdapter jsria =
            new JSRInlinerAdapter(mv, access, base, desc, signature, exceptions);
        AllocationMethodAdapter aimv =
            new AllocationMethodAdapter(jsria, recorderClass, recorderMethod);
        LocalVariablesSorter lvs = new LocalVariablesSorter(access, desc, aimv);
        aimv.lvs = lvs;
        mv = lvs;
      }
      return mv;
    }
docs: For each method in the class being instrumented, <code>visitMethod</code> is called and the
  returned MethodVisitor is used to visit the method. Note that a new MethodVisitor is
  constructed for each method.