Class StackSizeComputer
- java.lang.Object
-
- proguard.classfile.attribute.visitor.StackSizeComputer
-
- All Implemented Interfaces:
AttributeVisitor
public class StackSizeComputer extends java.lang.Object implements AttributeVisitor
ThisAttributeVisitorcomputes the stack sizes at all instruction offsets of the code attributes that it visits.If only the maximum stack size is required, then prefer
MaxStackSizeComputersince this class uses more memory because it stores the sizes for each offset.
-
-
Constructor Summary
Constructors Constructor Description StackSizeComputer()Construct aStackSizeComputerthat keeps track of sizes at each offset.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description intgetMaxStackSize()Returns the maximum stack size of the most recently visited code attribute.intgetStackSizeAfter(int instructionOffset)Returns the stack size after the given instruction offset of the most recently visited code attribute.intgetStackSizeBefore(int instructionOffset)Returns the stack size before the given instruction offset of the most recently visited code attribute.booleanisReachable(int instructionOffset)Returns whether the instruction at the given offset is reachable in the most recently visited code attribute.voidvisitAnyAttribute(Clazz clazz, Attribute attribute)Visits any Attribute instance.voidvisitCodeAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute)-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface proguard.classfile.attribute.visitor.AttributeVisitor
visitAnnotationDefaultAttribute, visitAnyAnnotationsAttribute, visitAnyParameterAnnotationsAttribute, visitAnyTypeAnnotationsAttribute, visitBootstrapMethodsAttribute, visitConstantValueAttribute, visitDeprecatedAttribute, visitDeprecatedAttribute, visitDeprecatedAttribute, visitDeprecatedAttribute, visitEnclosingMethodAttribute, visitExceptionsAttribute, visitInnerClassesAttribute, visitLineNumberTableAttribute, visitLocalVariableTableAttribute, visitLocalVariableTypeTableAttribute, visitMethodParametersAttribute, visitModuleAttribute, visitModuleMainClassAttribute, visitModulePackagesAttribute, visitNestHostAttribute, visitNestMembersAttribute, visitPermittedSubclassesAttribute, visitRecordAttribute, visitRuntimeInvisibleAnnotationsAttribute, visitRuntimeInvisibleAnnotationsAttribute, visitRuntimeInvisibleAnnotationsAttribute, visitRuntimeInvisibleAnnotationsAttribute, visitRuntimeInvisibleAnnotationsAttribute, visitRuntimeInvisibleParameterAnnotationsAttribute, visitRuntimeInvisibleTypeAnnotationsAttribute, visitRuntimeInvisibleTypeAnnotationsAttribute, visitRuntimeInvisibleTypeAnnotationsAttribute, visitRuntimeInvisibleTypeAnnotationsAttribute, visitRuntimeInvisibleTypeAnnotationsAttribute, visitRuntimeInvisibleTypeAnnotationsAttribute, visitRuntimeVisibleAnnotationsAttribute, visitRuntimeVisibleAnnotationsAttribute, visitRuntimeVisibleAnnotationsAttribute, visitRuntimeVisibleAnnotationsAttribute, visitRuntimeVisibleAnnotationsAttribute, visitRuntimeVisibleParameterAnnotationsAttribute, visitRuntimeVisibleTypeAnnotationsAttribute, visitRuntimeVisibleTypeAnnotationsAttribute, visitRuntimeVisibleTypeAnnotationsAttribute, visitRuntimeVisibleTypeAnnotationsAttribute, visitRuntimeVisibleTypeAnnotationsAttribute, visitRuntimeVisibleTypeAnnotationsAttribute, visitSignatureAttribute, visitSignatureAttribute, visitSignatureAttribute, visitSignatureAttribute, visitSignatureAttribute, visitSourceDebugExtensionAttribute, visitSourceDirAttribute, visitSourceFileAttribute, visitStackMapAttribute, visitStackMapTableAttribute, visitSyntheticAttribute, visitSyntheticAttribute, visitSyntheticAttribute, visitSyntheticAttribute, visitUnknownAttribute
-
-
-
-
Constructor Detail
-
StackSizeComputer
public StackSizeComputer()
Construct aStackSizeComputerthat keeps track of sizes at each offset.
-
-
Method Detail
-
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:AttributeVisitorVisits any Attribute instance. The more specific default implementations of this interface delegate to this method.- Specified by:
visitAnyAttributein interfaceAttributeVisitor
-
visitCodeAttribute
public void visitCodeAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute)
- Specified by:
visitCodeAttributein interfaceAttributeVisitor
-
-