Interface CodeAttribute

All Superinterfaces:
Attribute<CodeAttribute>, AttributedElement, ClassFileElement, CodeModel, CompoundElement<CodeElement>, Iterable<CodeElement>, MethodElement

public sealed interface CodeAttribute extends Attribute<CodeAttribute>, CodeModel
Models the Code attribute (JVMS 4.7.3), appears on non-native, non-abstract methods and contains the bytecode of the method body. Delivered as a MethodElement when traversing the elements of a MethodModel.

The attribute does not permit multiple instances in a given location. Subsequent occurrence of the attribute takes precedence during the attributed element build or transformation.

Since:
24
  • Method Details

    • maxLocals

      int maxLocals()
      Returns the maximum size of the local variable table.
      Returns:
      the maximum size of the local variable table
    • maxStack

      int maxStack()
      Returns the maximum size of the operand stack.
      Returns:
      the maximum size of the operand stack
    • codeLength

      int codeLength()
      Returns The length of the code array in bytes.
      Returns:
      The length of the code array in bytes
    • codeArray

      byte[] codeArray()
      Returns the bytes (bytecode) of the code array.
      Returns:
      the bytes (bytecode) of the code array
    • labelToBci

      int labelToBci(Label label)
      Returns the position of the label in the codeArray.
      Parameters:
      label - a marker for a position within this CodeAttribute
      Returns:
      the position of the label in the codeArray
      Throws:
      IllegalArgumentException - if the label is not from this attribute