Package proguard.evaluation
Class InitializationFinder
java.lang.Object
proguard.evaluation.InitializationFinder
- All Implemented Interfaces:
AttributeVisitor,InstructionVisitor
This
AttributeVisitor links 'new' instructions and their corresponding initializers in
the CodeAttribute instances that it visits.-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionCreates a new InitializationFinder.InitializationFinder(PartialEvaluator partialEvaluator, boolean runPartialEvaluator) Creates a new InitializationFinder that will use the given partial evaluator. -
Method Summary
Modifier and TypeMethodDescriptionintcreationOffset(int initializationOffset) Returns the 'new' instruction offset at which the object instance is created that is initialized at the given offset.booleanisInitializedBefore(int offset, int stackEntryIndexBottom) Returns whether the specified stack entry is initialized.booleanisInitializedBefore(int offset, InstructionOffsetValue creationOffsetValue) Returns whether the given creation offset is initialized before the given offset.booleanReturns whether the method is an instance initializer, in the CodeAttribute that was visited most recently.booleanisInitializer(int offset) Returns whether the instruction at the given offset is the special invocation of an instance initializer.booleanisTopInitializedBefore(int offset, int stackEntryIndexTop) Returns whether the specified stack entry is initialized.intReturns the instruction offset at which this initializer is calling the "super" or "this" initializer method, orNONEif it is not an initializer.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, waitMethods 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, visitUnknownAttributeMethods inherited from interface proguard.classfile.instruction.visitor.InstructionVisitor
visitAnyInstruction, visitAnySwitchInstruction, visitBranchInstruction, visitConstantInstruction, visitLookUpSwitchInstruction, visitSimpleInstruction, visitTableSwitchInstruction, visitVariableInstruction
-
Field Details
-
NONE
public static final int NONE- See Also:
-
-
Constructor Details
-
InitializationFinder
public InitializationFinder()Creates a new InitializationFinder. -
InitializationFinder
Creates a new InitializationFinder that will use the given partial evaluator.- Parameters:
partialEvaluator- the evaluator to be used for the analysis.runPartialEvaluator- specifies whether to run this evaluator on every code attribute that is visited.
-
-
Method Details
-
isInitializer
public boolean isInitializer()Returns whether the method is an instance initializer, in the CodeAttribute that was visited most recently. -
superInitializationOffset
public int superInitializationOffset()Returns the instruction offset at which this initializer is calling the "super" or "this" initializer method, orNONEif it is not an initializer. -
creationOffset
public int creationOffset(int initializationOffset) Returns the 'new' instruction offset at which the object instance is created that is initialized at the given offset. -
isInitializedBefore
public boolean isInitializedBefore(int offset, int stackEntryIndexBottom) Returns whether the specified stack entry is initialized. -
isTopInitializedBefore
public boolean isTopInitializedBefore(int offset, int stackEntryIndexTop) Returns whether the specified stack entry is initialized. -
isInitializedBefore
Returns whether the given creation offset is initialized before the given offset. -
isInitializer
public boolean isInitializer(int offset) Returns whether the instruction at the given offset is the special invocation of an instance initializer. -
visitAnyAttribute
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
- Specified by:
visitCodeAttributein interfaceAttributeVisitor
-