Class StackMapTable

All Implemented Interfaces:
Iterable<StackMapData>, Measurable, Printable

public class StackMapTable extends Container<StackMapData, CodeData>
StackMapTable_attribute { u2 attribute_name_index; u4 attribute_length; u2 number_of_entries; stack_map_frame entries[number_of_entries]; }
  • Field Details

    • attribute

      private final EAttribute attribute
    • wrappers

      protected final ArrayList<Boolean> wrappers
    • jasmHeader

      private String jasmHeader
    • intLine

      private String intLine
    • strLine

      private String strLine
    • shift

      private int shift
  • Constructor Details

    • StackMapTable

      public StackMapTable(EAttribute attribute, CodeData owner, int initialCapacity)
      Parameters:
      attribute - either Implicit stack map attribute or the StackMapTable attribute of the container
      owner -
      initialCapacity - initial capacity of the stack_map_frame entries[number_of_entries];
  • Method Details

    • add

      public void add(StackMapData element, boolean isWrapper) throws IOException
      Throws:
      IOException
    • real_size

      public int real_size()
    • print

      public void print() throws IOException
      Prints StackMapTable_attribute { u2 attribute_name_index; u4 attribute_length; u2 number_of_entries; stack_map_frame entries[number_of_entries]; } There are no differences between the simple (jasm) and extended (table) presentations of StackMapTable attribute.
      Specified by:
      print in interface Printable
      Overrides:
      print in class Container<StackMapData, CodeData>
      Throws:
      IOException - if an I/O error occurs while printing