Class StackSizeComputer

java.lang.Object
proguard.classfile.attribute.visitor.StackSizeComputer
All Implemented Interfaces:
AttributeVisitor

public class StackSizeComputer extends Object implements AttributeVisitor
This AttributeVisitor computes the stack sizes at all instruction offsets of the code attributes that it visits.

If only the maximum stack size is required, then prefer MaxStackSizeComputer since this class uses more memory because it stores the sizes for each offset.

  • Constructor Details

    • StackSizeComputer

      public StackSizeComputer()
      Construct a StackSizeComputer that keeps track of sizes at each offset.
  • Method Details

    • isReachable

      public boolean isReachable(int instructionOffset)
      Returns whether the instruction at the given offset is reachable in the most recently visited code attribute.
    • getStackSizeBefore

      public int getStackSizeBefore(int instructionOffset)
      Returns the stack size before the given instruction offset of the most recently visited code attribute.
    • getStackSizeAfter

      public int getStackSizeAfter(int instructionOffset)
      Returns the stack size after the given instruction offset of the most recently visited code attribute.
    • getMaxStackSize

      public int getMaxStackSize()
      Returns the maximum stack size of the most recently visited code attribute.
    • visitAnyAttribute

      public void visitAnyAttribute(Clazz clazz, Attribute attribute)
      Description copied from interface: AttributeVisitor
      Visits any Attribute instance. The more specific default implementations of this interface delegate to this method.
      Specified by:
      visitAnyAttribute in interface AttributeVisitor
    • visitCodeAttribute

      public void visitCodeAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute)
      Specified by:
      visitCodeAttribute in interface AttributeVisitor