code: private int readAnnotationValues(int v, final char[] buf,
                                       final boolean named, final AnnotationVisitor av) {
          int i = readUnsignedShort(v);
          v += 2;
          if (named) {
              for (; i > 0; --i) {
                  v = readAnnotationValue(v + 2, buf, readUTF8(v, buf), av);
              }
          } else {
              for (; i > 0; --i) {
                  v = readAnnotationValue(v, buf, null, av);
              }
          }
          if (av != null) {
              av.visitEnd();
          }
          return v;
      }
docs: Reads the values of an annotation and makes the given visitor visit them.
  
  @param v     the start offset in {@link #b b} of the values to be read
  (including the unsigned short that gives the number of
  values).
  @param buf   buffer to be used to call {@link #readUTF8 readUTF8},
  {@link #readClass(int, char[]) readClass} or {@link #readConst
  readConst}.
  @param named if the annotation values are named or not.
  @param av    the visitor that must visit the values.
  @return the end offset of the annotation values.