proguard.optimize.peephole
Class BranchTargetFinder
java.lang.Object
proguard.optimize.peephole.BranchTargetFinder
- All Implemented Interfaces:
- AttrInfoVisitor, ExceptionInfoVisitor, InstructionVisitor
- public class BranchTargetFinder
- extends Object
- implements AttrInfoVisitor, InstructionVisitor, ExceptionInfoVisitor
This AttrInfoVisitor finds all branch targets in the CodeAttrInfo objects
that it visits.
|
Method Summary |
boolean |
isBranchTarget(int offset)
Returns whether the instruction at the given offset is the target of a
branch instruction in the CodeAttrInfo that was visited most recently. |
void |
visitBranchInstruction(ClassFile classFile,
MethodInfo methodInfo,
CodeAttrInfo codeAttrInfo,
int offset,
BranchInstruction branchInstruction)
|
void |
visitCodeAttrInfo(ClassFile classFile,
MethodInfo methodInfo,
CodeAttrInfo codeAttrInfo)
|
void |
visitConstantValueAttrInfo(ClassFile classFile,
FieldInfo fieldInfo,
ConstantValueAttrInfo constantValueAttrInfo)
|
void |
visitCpInstruction(ClassFile classFile,
MethodInfo methodInfo,
CodeAttrInfo codeAttrInfo,
int offset,
CpInstruction cpInstruction)
|
void |
visitDeprecatedAttrInfo(ClassFile classFile,
DeprecatedAttrInfo deprecatedAttrInfo)
|
void |
visitExceptionInfo(ClassFile classFile,
MethodInfo methodInfo,
CodeAttrInfo codeAttrInfo,
ExceptionInfo exceptionInfo)
|
void |
visitExceptionsAttrInfo(ClassFile classFile,
MethodInfo methodInfo,
ExceptionsAttrInfo exceptionsAttrInfo)
|
void |
visitInnerClassesAttrInfo(ClassFile classFile,
InnerClassesAttrInfo innerClassesAttrInfo)
|
void |
visitLineNumberTableAttrInfo(ClassFile classFile,
MethodInfo methodInfo,
CodeAttrInfo codeAttrInfo,
LineNumberTableAttrInfo lineNumberTableAttrInfo)
|
void |
visitLocalVariableTableAttrInfo(ClassFile classFile,
MethodInfo methodInfo,
CodeAttrInfo codeAttrInfo,
LocalVariableTableAttrInfo localVariableTableAttrInfo)
|
void |
visitLookUpSwitchInstruction(ClassFile classFile,
MethodInfo methodInfo,
CodeAttrInfo codeAttrInfo,
int offset,
LookUpSwitchInstruction lookUpSwitchInstruction)
|
void |
visitSignatureAttrInfo(ClassFile classFile,
SignatureAttrInfo signatureAttrInfo)
|
void |
visitSimpleInstruction(ClassFile classFile,
MethodInfo methodInfo,
CodeAttrInfo codeAttrInfo,
int offset,
SimpleInstruction simpleInstruction)
|
void |
visitSourceDirAttrInfo(ClassFile classFile,
SourceDirAttrInfo sourceDirAttrInfo)
|
void |
visitSourceFileAttrInfo(ClassFile classFile,
SourceFileAttrInfo sourceFileAttrInfo)
|
void |
visitSyntheticAttrInfo(ClassFile classFile,
SyntheticAttrInfo syntheticAttrInfo)
|
void |
visitTableSwitchInstruction(ClassFile classFile,
MethodInfo methodInfo,
CodeAttrInfo codeAttrInfo,
int offset,
TableSwitchInstruction tableSwitchInstruction)
|
void |
visitUnknownAttrInfo(ClassFile classFile,
UnknownAttrInfo unknownAttrInfo)
|
void |
visitVariableInstruction(ClassFile classFile,
MethodInfo methodInfo,
CodeAttrInfo codeAttrInfo,
int offset,
VariableInstruction variableInstruction)
|
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
BranchTargetFinder
public BranchTargetFinder(int codeLength)
- Creates a new BranchTargetFinder.
- Parameters:
codeLength - an estimate of the maximum length of all the code that
will be edited.
isBranchTarget
public boolean isBranchTarget(int offset)
- Returns whether the instruction at the given offset is the target of a
branch instruction in the CodeAttrInfo that was visited most recently.
visitUnknownAttrInfo
public void visitUnknownAttrInfo(ClassFile classFile,
UnknownAttrInfo unknownAttrInfo)
- Specified by:
visitUnknownAttrInfo in interface AttrInfoVisitor
visitInnerClassesAttrInfo
public void visitInnerClassesAttrInfo(ClassFile classFile,
InnerClassesAttrInfo innerClassesAttrInfo)
- Specified by:
visitInnerClassesAttrInfo in interface AttrInfoVisitor
visitConstantValueAttrInfo
public void visitConstantValueAttrInfo(ClassFile classFile,
FieldInfo fieldInfo,
ConstantValueAttrInfo constantValueAttrInfo)
- Specified by:
visitConstantValueAttrInfo in interface AttrInfoVisitor
visitExceptionsAttrInfo
public void visitExceptionsAttrInfo(ClassFile classFile,
MethodInfo methodInfo,
ExceptionsAttrInfo exceptionsAttrInfo)
- Specified by:
visitExceptionsAttrInfo in interface AttrInfoVisitor
visitLineNumberTableAttrInfo
public void visitLineNumberTableAttrInfo(ClassFile classFile,
MethodInfo methodInfo,
CodeAttrInfo codeAttrInfo,
LineNumberTableAttrInfo lineNumberTableAttrInfo)
- Specified by:
visitLineNumberTableAttrInfo in interface AttrInfoVisitor
visitLocalVariableTableAttrInfo
public void visitLocalVariableTableAttrInfo(ClassFile classFile,
MethodInfo methodInfo,
CodeAttrInfo codeAttrInfo,
LocalVariableTableAttrInfo localVariableTableAttrInfo)
- Specified by:
visitLocalVariableTableAttrInfo in interface AttrInfoVisitor
visitSourceFileAttrInfo
public void visitSourceFileAttrInfo(ClassFile classFile,
SourceFileAttrInfo sourceFileAttrInfo)
- Specified by:
visitSourceFileAttrInfo in interface AttrInfoVisitor
visitSourceDirAttrInfo
public void visitSourceDirAttrInfo(ClassFile classFile,
SourceDirAttrInfo sourceDirAttrInfo)
- Specified by:
visitSourceDirAttrInfo in interface AttrInfoVisitor
visitDeprecatedAttrInfo
public void visitDeprecatedAttrInfo(ClassFile classFile,
DeprecatedAttrInfo deprecatedAttrInfo)
- Specified by:
visitDeprecatedAttrInfo in interface AttrInfoVisitor
visitSyntheticAttrInfo
public void visitSyntheticAttrInfo(ClassFile classFile,
SyntheticAttrInfo syntheticAttrInfo)
- Specified by:
visitSyntheticAttrInfo in interface AttrInfoVisitor
visitSignatureAttrInfo
public void visitSignatureAttrInfo(ClassFile classFile,
SignatureAttrInfo signatureAttrInfo)
- Specified by:
visitSignatureAttrInfo in interface AttrInfoVisitor
visitCodeAttrInfo
public void visitCodeAttrInfo(ClassFile classFile,
MethodInfo methodInfo,
CodeAttrInfo codeAttrInfo)
- Specified by:
visitCodeAttrInfo in interface AttrInfoVisitor
visitSimpleInstruction
public void visitSimpleInstruction(ClassFile classFile,
MethodInfo methodInfo,
CodeAttrInfo codeAttrInfo,
int offset,
SimpleInstruction simpleInstruction)
- Specified by:
visitSimpleInstruction in interface InstructionVisitor
visitCpInstruction
public void visitCpInstruction(ClassFile classFile,
MethodInfo methodInfo,
CodeAttrInfo codeAttrInfo,
int offset,
CpInstruction cpInstruction)
- Specified by:
visitCpInstruction in interface InstructionVisitor
visitVariableInstruction
public void visitVariableInstruction(ClassFile classFile,
MethodInfo methodInfo,
CodeAttrInfo codeAttrInfo,
int offset,
VariableInstruction variableInstruction)
- Specified by:
visitVariableInstruction in interface InstructionVisitor
visitBranchInstruction
public void visitBranchInstruction(ClassFile classFile,
MethodInfo methodInfo,
CodeAttrInfo codeAttrInfo,
int offset,
BranchInstruction branchInstruction)
- Specified by:
visitBranchInstruction in interface InstructionVisitor
visitTableSwitchInstruction
public void visitTableSwitchInstruction(ClassFile classFile,
MethodInfo methodInfo,
CodeAttrInfo codeAttrInfo,
int offset,
TableSwitchInstruction tableSwitchInstruction)
- Specified by:
visitTableSwitchInstruction in interface InstructionVisitor
visitLookUpSwitchInstruction
public void visitLookUpSwitchInstruction(ClassFile classFile,
MethodInfo methodInfo,
CodeAttrInfo codeAttrInfo,
int offset,
LookUpSwitchInstruction lookUpSwitchInstruction)
- Specified by:
visitLookUpSwitchInstruction in interface InstructionVisitor
visitExceptionInfo
public void visitExceptionInfo(ClassFile classFile,
MethodInfo methodInfo,
CodeAttrInfo codeAttrInfo,
ExceptionInfo exceptionInfo)
- Specified by:
visitExceptionInfo in interface ExceptionInfoVisitor