jodd-proxetta/src/main/java/jodd/asm7/Attribute.java
final void putAttributes(
      final SymbolTable symbolTable,
      final byte[] code,
      final int codeLength,
      final int maxStack,
      final int maxLocals,
      final ByteVector output) {
    final ClassWriter classWriter = symbolTable.classWriter;
    Attribute attribute = this;
    while (attribute != null) {
      ByteVector attributeContent =
          attribute.write(classWriter, code, codeLength, maxStack, maxLocals);
      // Put attribute_name_index and attribute_length.
      output.putShort(symbolTable.addConstantUtf8(attribute.type)).putInt(attributeContent.length);
      output.putByteArray(attributeContent.data, 0, attributeContent.length);
      attribute = attribute.nextAttribute;
    }
  }
final void putAttributes(
      final SymbolTable symbolTable,
      final byte[] code,
      final int codeLength,
      final int maxStack,
      final int maxLocals,
      final ByteVector output) {
    final ClassWriter classWriter = symbolTable.classWriter;
    Attribute attribute = this;
    while (attribute != null) {
      ByteVector attributeContent =
          attribute.write(classWriter, code, codeLength, maxStack, maxLocals);
      // Put attribute_name_index and attribute_length.
      output.putShort(symbolTable.addConstantUtf8(attribute.type)).putInt(attributeContent.length);
      output.putByteArray(attributeContent.data, 0, attributeContent.length);
      attribute = attribute.nextAttribute;
    }
  }
Puts all the attributes of the attribute list that begins with this attribute, in the given
byte vector. This includes the 6 header bytes (attribute_name_index and attribute_length) per
attribute.

@param symbolTable where the constants used in the attributes must be stored.
@param code the bytecode of the method corresponding to these code attributes, or {@literal
null} if they are not code attributes. Corresponds to the 'code' field of the Code
attribute.
@param codeLength the length of the bytecode of the method corresponding to these code
attributes, or 0 if they are not code attributes. Corresponds to the 'code_length' field of
the Code attribute.
@param maxStack the maximum stack size of the method corresponding to these code attributes, or
-1 if they are not code attributes.
@param maxLocals the maximum number of local variables of the method corresponding to these
code attributes, or -1 if they are not code attribute.
@param output where the attributes must be written.