public class InstructionUsageMarker extends SimplifiedVisitor implements AttributeVisitor
| Constructor and Description |
|---|
InstructionUsageMarker()
Creates a new InstructionUsageMarker.
|
InstructionUsageMarker(PartialEvaluator partialEvaluator,
boolean runPartialEvaluator)
Creates a new InstructionUsageMarker.
|
| Modifier and Type | Method and Description |
|---|---|
InstructionOffsetValue |
branchTargets(int instructionOffset)
Returns the instruction offsets to which the given instruction offset
branches in the most recently analyzed code attribute.
|
TracedStack |
getStackAfter(int instructionOffset)
Returns the stack after execution of the instruction at the given
offset.
|
TracedStack |
getStackBefore(int instructionOffset)
Returns the stack before execution of the instruction at the given
offset.
|
boolean |
isAnyStackEntryNecessaryAfter(InstructionOffsetValue instructionOffsets,
int stackIndex)
Returns whether any of the stack entries after the given offsets are
necessary.
|
boolean |
isExtraPushPopInstructionNecessary(int instructionOffset)
Returns whether an extra push/pop instruction is required at the given
offset in the most recently analyzed code attribute.
|
boolean |
isInstructionNecessary(int instructionOffset)
Returns whether the specified instruction is necessary in the most
recently analyzed code attribute.
|
boolean |
isStackEntriesNecessaryAfter(int instructionOffset,
int stackIndex1,
int stackIndex2)
Returns whether the stack specified entries after the given offset are
necessary.
|
boolean |
isStackEntriesPresentBefore(int instructionOffset,
int stackIndex1,
int stackIndex2)
Returns whether the stack specified entries before the given offset are
present.
|
boolean |
isStackEntryNecessaryAfter(int instructionOffset,
int stackIndex)
Returns whether the specified stack entry after the given offset is
necessary.
|
boolean |
isStackEntryPresentBefore(int instructionOffset,
int stackIndex)
Returns whether the specified stack entry before the given offset is
present.
|
boolean |
isStackEntryUnwantedBefore(int instructionOffset,
int stackIndex)
Returns whether the specified stack entry before the given offset is
unwanted, e.g.
|
boolean |
isTraced(int instructionOffset)
Returns whether the specified instruction was traced in the most
recently analyzed code attribute.
|
InstructionVisitor |
necessaryInstructionFilter(boolean necessary,
InstructionVisitor instructionVisitor)
Returns a filtering version of the given instruction visitor that only
visits necessary or unnecessary instructions.
|
InstructionVisitor |
necessaryInstructionFilter(InstructionVisitor instructionVisitor)
Returns a filtering version of the given instruction visitor that only
visits necessary instructions.
|
InstructionVisitor |
tracedInstructionFilter(boolean traced,
InstructionVisitor instructionVisitor)
Returns a filtering version of the given instruction visitor that only
visits traced or untraced instructions.
|
InstructionVisitor |
tracedInstructionFilter(InstructionVisitor instructionVisitor)
Returns a filtering version of the given instruction visitor that only
visits traced instructions.
|
void |
visitAnyAttribute(Clazz clazz,
Attribute attribute)
Visit any type of attribute.
|
void |
visitCodeAttribute(Clazz clazz,
Method method,
CodeAttribute codeAttribute) |
void |
visitCodeAttribute0(Clazz clazz,
Method method,
CodeAttribute codeAttribute) |
visitAnnotation, visitAnnotation, visitAnnotation, visitAnnotation, visitAnnotation, visitAnnotation, visitAnnotationDefaultAttribute, visitAnnotationElementValue, visitAnyAnnotationsAttribute, visitAnyClass, visitAnyConstant, visitAnyElementValue, visitAnyInstruction, visitAnyMember, visitAnyMethodrefConstant, visitAnyParameterAnnotationsAttribute, visitAnyPrimitiveArrayConstant, visitAnyPrimitiveArrayConstantElement, visitAnyRefConstant, visitAnyStackMapFrame, visitAnySwitchInstruction, visitAnyTargetInfo, visitAnyTypeAnnotationsAttribute, visitAnyVerificationType, visitArrayElementValue, visitBooleanArrayConstant, visitBooleanArrayConstantElement, visitBootstrapMethodsAttribute, visitBranchInstruction, visitByteArrayConstant, visitByteArrayConstantElement, visitCatchTargetInfo, visitCharArrayConstant, visitCharArrayConstantElement, visitClassConstant, visitClassElementValue, visitConstantElementValue, visitConstantInstruction, visitConstantValueAttribute, visitDeprecatedAttribute, visitDeprecatedAttribute, visitDeprecatedAttribute, visitDeprecatedAttribute, visitDoubleArrayConstant, visitDoubleArrayConstantElement, visitDoubleConstant, visitDoubleType, visitDynamicConstant, visitEmptyTargetInfo, visitEmptyTargetInfo, visitEmptyTargetInfo, visitEnclosingMethodAttribute, visitEnumConstantElementValue, visitExceptionsAttribute, visitFieldrefConstant, visitFloatArrayConstant, visitFloatArrayConstantElement, visitFloatConstant, visitFloatType, visitFormalParameterTargetInfo, visitFullFrame, visitInnerClassesAttribute, visitIntArrayConstant, visitIntArrayConstantElement, visitIntegerConstant, visitIntegerType, visitInterfaceMethodrefConstant, visitInvokeDynamicConstant, visitLessZeroFrame, visitLibraryClass, visitLibraryField, visitLibraryMember, visitLibraryMethod, visitLineNumberTableAttribute, visitLocalVariableTableAttribute, visitLocalVariableTargetInfo, visitLocalVariableTypeTableAttribute, visitLongArrayConstant, visitLongArrayConstantElement, visitLongConstant, visitLongType, visitLookUpSwitchInstruction, visitMethodHandleConstant, visitMethodParametersAttribute, visitMethodrefConstant, visitMethodTypeConstant, visitModuleAttribute, visitModuleConstant, visitModuleMainClassAttribute, visitModulePackagesAttribute, visitMoreZeroFrame, visitNameAndTypeConstant, visitNestHostAttribute, visitNestMembersAttribute, visitNullType, visitObjectType, visitOffsetTargetInfo, visitPackageConstant, visitPrimitiveArrayConstant, visitProgramClass, visitProgramField, visitProgramMember, visitProgramMethod, visitRuntimeInvisibleAnnotationsAttribute, visitRuntimeInvisibleAnnotationsAttribute, visitRuntimeInvisibleAnnotationsAttribute, visitRuntimeInvisibleAnnotationsAttribute, visitRuntimeInvisibleParameterAnnotationsAttribute, visitRuntimeInvisibleTypeAnnotationsAttribute, visitRuntimeInvisibleTypeAnnotationsAttribute, visitRuntimeInvisibleTypeAnnotationsAttribute, visitRuntimeInvisibleTypeAnnotationsAttribute, visitRuntimeInvisibleTypeAnnotationsAttribute, visitRuntimeVisibleAnnotationsAttribute, visitRuntimeVisibleAnnotationsAttribute, visitRuntimeVisibleAnnotationsAttribute, visitRuntimeVisibleAnnotationsAttribute, visitRuntimeVisibleParameterAnnotationsAttribute, visitRuntimeVisibleTypeAnnotationsAttribute, visitRuntimeVisibleTypeAnnotationsAttribute, visitRuntimeVisibleTypeAnnotationsAttribute, visitRuntimeVisibleTypeAnnotationsAttribute, visitRuntimeVisibleTypeAnnotationsAttribute, visitSameOneFrame, visitSameZeroFrame, visitShortArrayConstant, visitShortArrayConstantElement, visitSignatureAttribute, visitSignatureAttribute, visitSignatureAttribute, visitSignatureAttribute, visitSimpleInstruction, visitSourceDirAttribute, visitSourceFileAttribute, visitStackDoubleType, visitStackFloatType, visitStackIntegerType, visitStackLongType, visitStackMapAttribute, visitStackMapTableAttribute, visitStackNullType, visitStackObjectType, visitStackTopType, visitStackUninitializedThisType, visitStackUninitializedType, visitStringConstant, visitSuperTypeTargetInfo, visitSyntheticAttribute, visitSyntheticAttribute, visitSyntheticAttribute, visitSyntheticAttribute, visitTableSwitchInstruction, visitThrowsTargetInfo, visitTopType, visitTypeAnnotation, visitTypeAnnotation, visitTypeAnnotation, visitTypeAnnotation, visitTypeAnnotation, visitTypeAnnotation, visitTypeArgumentTargetInfo, visitTypeParameterBoundTargetInfo, visitTypeParameterBoundTargetInfo, visitTypeParameterBoundTargetInfo, visitTypeParameterBoundTargetInfo, visitTypeParameterTargetInfo, visitTypeParameterTargetInfo, visitTypePathInfo, visitTypePathInfo, visitTypePathInfo, visitTypePathInfo, visitTypePathInfo, visitUninitializedThisType, visitUninitializedType, visitUnknownAttribute, visitUtf8Constant, visitVariableInstruction, visitVariablesDoubleType, visitVariablesFloatType, visitVariablesIntegerType, visitVariablesLongType, visitVariablesNullType, visitVariablesObjectType, visitVariablesTopType, visitVariablesUninitializedThisType, visitVariablesUninitializedTypeclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitvisitAnnotationDefaultAttribute, visitBootstrapMethodsAttribute, visitConstantValueAttribute, visitDeprecatedAttribute, visitDeprecatedAttribute, visitDeprecatedAttribute, visitEnclosingMethodAttribute, visitExceptionsAttribute, visitInnerClassesAttribute, visitLineNumberTableAttribute, visitLocalVariableTableAttribute, visitLocalVariableTypeTableAttribute, visitMethodParametersAttribute, visitModuleAttribute, visitModuleMainClassAttribute, visitModulePackagesAttribute, visitNestHostAttribute, visitNestMembersAttribute, visitRuntimeInvisibleAnnotationsAttribute, visitRuntimeInvisibleAnnotationsAttribute, visitRuntimeInvisibleAnnotationsAttribute, visitRuntimeInvisibleParameterAnnotationsAttribute, visitRuntimeInvisibleTypeAnnotationsAttribute, visitRuntimeInvisibleTypeAnnotationsAttribute, visitRuntimeInvisibleTypeAnnotationsAttribute, visitRuntimeInvisibleTypeAnnotationsAttribute, visitRuntimeVisibleAnnotationsAttribute, visitRuntimeVisibleAnnotationsAttribute, visitRuntimeVisibleAnnotationsAttribute, visitRuntimeVisibleParameterAnnotationsAttribute, visitRuntimeVisibleTypeAnnotationsAttribute, visitRuntimeVisibleTypeAnnotationsAttribute, visitRuntimeVisibleTypeAnnotationsAttribute, visitRuntimeVisibleTypeAnnotationsAttribute, visitSignatureAttribute, visitSignatureAttribute, visitSignatureAttribute, visitSourceDirAttribute, visitSourceFileAttribute, visitStackMapAttribute, visitStackMapTableAttribute, visitSyntheticAttribute, visitSyntheticAttribute, visitSyntheticAttribute, visitUnknownAttributepublic InstructionUsageMarker()
public InstructionUsageMarker(PartialEvaluator partialEvaluator, boolean runPartialEvaluator)
partialEvaluator - the evaluator to be used for the analysis.runPartialEvaluator - specifies whether to run this evaluator on
every code attribute that is visited.public boolean isTraced(int instructionOffset)
public InstructionVisitor tracedInstructionFilter(InstructionVisitor instructionVisitor)
public InstructionVisitor tracedInstructionFilter(boolean traced, InstructionVisitor instructionVisitor)
public boolean isInstructionNecessary(int instructionOffset)
public boolean isExtraPushPopInstructionNecessary(int instructionOffset)
public InstructionVisitor necessaryInstructionFilter(InstructionVisitor instructionVisitor)
public InstructionVisitor necessaryInstructionFilter(boolean necessary, InstructionVisitor instructionVisitor)
public TracedStack getStackBefore(int instructionOffset)
public TracedStack getStackAfter(int instructionOffset)
public boolean isStackEntryUnwantedBefore(int instructionOffset,
int stackIndex)
public boolean isStackEntriesPresentBefore(int instructionOffset,
int stackIndex1,
int stackIndex2)
public boolean isStackEntryPresentBefore(int instructionOffset,
int stackIndex)
instructionOffset - the offset of the stack entry to be checked.stackIndex - the index of the stack entry to be checked
(counting from the bottom).public boolean isStackEntriesNecessaryAfter(int instructionOffset,
int stackIndex1,
int stackIndex2)
public boolean isAnyStackEntryNecessaryAfter(InstructionOffsetValue instructionOffsets, int stackIndex)
instructionOffsets - the offsets of the stack entries to be checked.stackIndex - the index of the stack entries to be checked
(counting from the bottom).public boolean isStackEntryNecessaryAfter(int instructionOffset,
int stackIndex)
instructionOffset - the offset of the stack entry to be checked.stackIndex - the index of the stack entry to be checked
(counting from the bottom).public InstructionOffsetValue branchTargets(int instructionOffset)
public void visitAnyAttribute(Clazz clazz, Attribute attribute)
SimplifiedVisitorvisitAnyAttribute in class SimplifiedVisitorpublic void visitCodeAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute)
visitCodeAttribute in interface AttributeVisitorvisitCodeAttribute in class SimplifiedVisitorpublic void visitCodeAttribute0(Clazz clazz, Method method, CodeAttribute codeAttribute)
Copyright © 2019. All rights reserved.