Package | Description |
---|---|
org.objectweb.asm.tree.analysis |
Provides a framework for static code analysis based on the asm.tree package.
|
Modifier and Type | Method and Description |
---|---|
Frame<V>[] |
Analyzer.analyze(java.lang.String owner,
MethodNode method)
Analyzes the given method.
|
BasicValue |
BasicInterpreter.binaryOperation(AbstractInsnNode insn,
BasicValue value1,
BasicValue value2) |
BasicValue |
BasicVerifier.binaryOperation(AbstractInsnNode insn,
BasicValue value1,
BasicValue value2) |
abstract V |
Interpreter.binaryOperation(AbstractInsnNode insn,
V value1,
V value2)
Interprets a bytecode instruction with two arguments.
|
BasicValue |
BasicInterpreter.copyOperation(AbstractInsnNode insn,
BasicValue value) |
BasicValue |
BasicVerifier.copyOperation(AbstractInsnNode insn,
BasicValue value) |
abstract V |
Interpreter.copyOperation(AbstractInsnNode insn,
V value)
Interprets a bytecode instruction that moves a value on the stack or to or from local
variables.
|
void |
Frame.execute(AbstractInsnNode insn,
Interpreter<V> interpreter)
Simulates the execution of the given instruction on this execution stack frame.
|
private void |
Frame.executeInvokeInsn(AbstractInsnNode insn,
java.lang.String methodDescriptor,
Interpreter<V> interpreter) |
private void |
Analyzer.findSubroutine(int insnIndex,
Subroutine subroutine,
java.util.List<AbstractInsnNode> jsrInsns)
Follows the control flow graph of the currently analyzed method, starting at the given
instruction index, and stores a copy of the given subroutine in
Analyzer.subroutines for each
encountered instruction. |
protected BasicValue |
SimpleVerifier.getElementValue(BasicValue objectArrayValue) |
protected BasicValue |
BasicVerifier.getElementValue(BasicValue objectArrayValue)
Returns the value corresponding to the type of the elements of the given array reference value.
|
protected void |
Analyzer.init(java.lang.String owner,
MethodNode method)
Initializes this analyzer.
|
boolean |
Frame.merge(Frame<? extends V> frame,
Interpreter<V> interpreter)
Merges the given frame into this frame.
|
private void |
Analyzer.merge(int insnIndex,
Frame<V> frameBeforeJsr,
Frame<V> frameAfterRet,
Subroutine subroutineBeforeJsr,
boolean[] localsUsed)
Merges the given frame and subroutine into the frame and subroutines at the given instruction
index (case of a RET instruction).
|
private void |
Analyzer.merge(int insnIndex,
Frame<V> frame,
Subroutine subroutine)
Merges the given frame and subroutine into the frame and subroutines at the given instruction
index.
|
BasicValue |
BasicInterpreter.naryOperation(AbstractInsnNode insn,
java.util.List<? extends BasicValue> values) |
BasicValue |
BasicVerifier.naryOperation(AbstractInsnNode insn,
java.util.List<? extends BasicValue> values) |
abstract V |
Interpreter.naryOperation(AbstractInsnNode insn,
java.util.List<? extends V> values)
Interprets a bytecode instruction with a variable number of arguments.
|
BasicValue |
BasicInterpreter.newOperation(AbstractInsnNode insn) |
abstract V |
Interpreter.newOperation(AbstractInsnNode insn)
Interprets a bytecode instruction without arguments.
|
void |
BasicInterpreter.returnOperation(AbstractInsnNode insn,
BasicValue value,
BasicValue expected) |
void |
BasicVerifier.returnOperation(AbstractInsnNode insn,
BasicValue value,
BasicValue expected) |
abstract void |
Interpreter.returnOperation(AbstractInsnNode insn,
V value,
V expected)
Interprets a bytecode return instruction.
|
BasicValue |
BasicInterpreter.ternaryOperation(AbstractInsnNode insn,
BasicValue value1,
BasicValue value2,
BasicValue value3) |
BasicValue |
BasicVerifier.ternaryOperation(AbstractInsnNode insn,
BasicValue value1,
BasicValue value2,
BasicValue value3) |
abstract V |
Interpreter.ternaryOperation(AbstractInsnNode insn,
V value1,
V value2,
V value3)
Interprets a bytecode instruction with three arguments.
|
BasicValue |
BasicInterpreter.unaryOperation(AbstractInsnNode insn,
BasicValue value) |
BasicValue |
BasicVerifier.unaryOperation(AbstractInsnNode insn,
BasicValue value) |
abstract V |
Interpreter.unaryOperation(AbstractInsnNode insn,
V value)
Interprets a bytecode instruction with a single argument.
|