code: private void copyBootstrapMethods(final ClassWriter classWriter,
              final Item[] items, final char[] c) {
          // finds the "BootstrapMethods" attribute
          int u = getAttributes();
          boolean found = false;
          for (int i = readUnsignedShort(u); i > 0; --i) {
              String attrName = readUTF8(u + 2, c);
              if ("BootstrapMethods".equals(attrName)) {
                  found = true;
                  break;
              }
              u += 6 + readInt(u + 4);
          }
          if (!found) {
              return;
          }
          // copies the bootstrap methods in the class writer
          int boostrapMethodCount = readUnsignedShort(u + 8);
          for (int j = 0, v = u + 10; j < boostrapMethodCount; j++) {
              int position = v - u - 10;
              int hashCode = readConst(readUnsignedShort(v), c).hashCode();
              for (int k = readUnsignedShort(v + 2); k > 0; --k) {
                  hashCode ^= readConst(readUnsignedShort(v + 4), c).hashCode();
                  v += 2;
              }
              v += 4;
              Item item = new Item(j);
              item.set(position, hashCode & 0x7FFFFFFF);
              int index = item.hashCode % items.length;
              item.next = items[index];
              items[index] = item;
          }
          int attrSize = readInt(u + 4);
          ByteVector bootstrapMethods = new ByteVector(attrSize + 62);
          bootstrapMethods.putByteArray(b, u + 10, attrSize - 2);
          classWriter.bootstrapMethodsCount = boostrapMethodCount;
          classWriter.bootstrapMethods = bootstrapMethods;
      }
docs: Copies the bootstrap method data into the given {@link ClassWriter}.
  Should be called before the {@link #accept(ClassVisitor,int)} method.
  
  @param classWriter
  the {@link ClassWriter} to copy bootstrap methods into.