Class StackMapTable.Writer

java.lang.Object
javassist.bytecode.StackMapTable.Writer
Enclosing class:
StackMapTable

public static class StackMapTable.Writer extends Object
A writer of stack map tables.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    (package private) int
     
    (package private) ByteArrayOutputStream
     
  • Constructor Summary

    Constructors
    Constructor
    Description
    Writer(int size)
    Constructs a writer.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    appendFrame(int offsetDelta, int[] tags, int[] data)
    Writes a append_frame.
    void
    chopFrame(int offsetDelta, int k)
    Writes a chop_frame.
    void
    fullFrame(int offsetDelta, int[] localTags, int[] localData, int[] stackTags, int[] stackData)
    Writes a full_frame.
    void
    sameFrame(int offsetDelta)
    Writes a same_frame or a same_frame_extended.
    void
    sameLocals(int offsetDelta, int tag, int data)
    Writes a same_locals_1_stack_item or a same_locals_1_stack_item_extended.
    byte[]
    Returns the stack map table written out.
    Constructs and a return a stack map table containing the written stack map entries.
    private void
    write16(int value)
     
    private void
    writeTypeInfo(int tag, int data)
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

  • Constructor Details

    • Writer

      public Writer(int size)
      Constructs a writer.
      Parameters:
      size - the initial buffer size.
  • Method Details

    • toByteArray

      public byte[] toByteArray()
      Returns the stack map table written out.
    • toStackMapTable

      public StackMapTable toStackMapTable(ConstPool cp)
      Constructs and a return a stack map table containing the written stack map entries.
      Parameters:
      cp - the constant pool used to write the stack map entries.
    • sameFrame

      public void sameFrame(int offsetDelta)
      Writes a same_frame or a same_frame_extended.
    • sameLocals

      public void sameLocals(int offsetDelta, int tag, int data)
      Writes a same_locals_1_stack_item or a same_locals_1_stack_item_extended.
      Parameters:
      tag - stack[0].tag.
      data - stack[0].cpool_index if the tag is OBJECT, or stack[0].offset if the tag is UNINIT. Otherwise, this parameter is not used.
    • chopFrame

      public void chopFrame(int offsetDelta, int k)
      Writes a chop_frame.
      Parameters:
      k - the number of absent locals. 1, 2, or 3.
    • appendFrame

      public void appendFrame(int offsetDelta, int[] tags, int[] data)
      Writes a append_frame. The number of the appended locals is specified by the length of tags.
      Parameters:
      tags - locals[].tag. The length of this array must be either 1, 2, or 3.
      data - locals[].cpool_index if the tag is OBJECT, or locals[].offset if the tag is UNINIT. Otherwise, this parameter is not used.
    • fullFrame

      public void fullFrame(int offsetDelta, int[] localTags, int[] localData, int[] stackTags, int[] stackData)
      Writes a full_frame. number_of_locals and number_of_stack_items are specified by the the length of localTags and stackTags.
      Parameters:
      localTags - locals[].tag.
      localData - locals[].cpool_index if the tag is OBJECT, or locals[].offset if the tag is UNINIT. Otherwise, this parameter is not used.
      stackTags - stack[].tag.
      stackData - stack[].cpool_index if the tag is OBJECT, or stack[].offset if the tag is UNINIT. Otherwise, this parameter is not used.
    • writeTypeInfo

      private void writeTypeInfo(int tag, int data)
    • write16

      private void write16(int value)