Package proguard.dexfile.reader.node
Class DexCodeNode
- java.lang.Object
-
- proguard.dexfile.reader.visitors.DexCodeVisitor
-
- proguard.dexfile.reader.node.DexCodeNode
-
public class DexCodeNode extends DexCodeVisitor
-
-
Field Summary
Fields Modifier and Type Field Description DexDebugNode
debugNode
java.util.List<DexStmtNode>
stmts
int
totalRegister
java.util.List<TryCatchNode>
tryStmts
-
Fields inherited from class proguard.dexfile.reader.visitors.DexCodeVisitor
visitor
-
-
Constructor Summary
Constructors Constructor Description DexCodeNode()
DexCodeNode(DexCodeVisitor visitor)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
accept(DexCodeVisitor v)
void
accept(DexMethodVisitor v)
protected void
add(DexStmtNode stmt)
void
visitConstStmt(Op op, int ra, java.lang.Object value)
CONST * CONST_WIDE * CONST_STRING * CONST_CLASS *DexDebugVisitor
visitDebug()
void
visitFieldStmt(Op op, int a, int b, Field field)
OP_IGETX a,b field OP_IPUTX a,b field OP_SGETX a field OP_SPUTX a fieldvoid
visitFillArrayDataStmt(Op op, int ra, java.lang.Object array)
void
visitFilledNewArrayStmt(Op op, int[] args, java.lang.String type)
OP_FILLED_NEW_ARRAYvoid
visitJumpStmt(Op op, int a, int b, DexLabel label)
OP_IF_EQ OP_IF_NE OP_IF_LT OP_IF_GE OP_IF_GT OP_IF_LE OP_GOTO OP_IF_EQZ OP_IF_NEZ OP_IF_LTZ OP_IF_GEZ OP_IF_GTZ OP_IF_LEZvoid
visitLabel(DexLabel label)
void
visitMethodStmt(Op op, int[] args, java.lang.String name, Proto proto, MethodHandle bsm, java.lang.Object... bsmArgs)
OP_INVOKE_CUSTOMvoid
visitMethodStmt(Op op, int[] args, Method method)
OP_INVOKE_VIRTUAL OP_INVOKE_SUPER OP_INVOKE_DIRECT OP_INVOKE_STATIC OP_INVOKE_INTERFACEvoid
visitMethodStmt(Op op, int[] args, Method bsm, Proto proto)
OP_INVOKE_POLYMORPHICvoid
visitPackedSwitchStmt(Op op, int aA, int first_case, DexLabel[] labels)
void
visitRegister(int total)
void
visitSparseSwitchStmt(Op op, int ra, int[] cases, DexLabel[] labels)
void
visitStmt0R(Op op)
void
visitStmt1R(Op op, int reg)
OP_RETURN_X OP_THROW_X OP_MONITOR_ENTER OP_MONITOR_EXIT OP_MOVE_RESULT_X OP_MOVE_EXCEPTION_Xvoid
visitStmt2R(Op op, int a, int b)
OP_MOVE* a = a X b OP_ARRAY_LENGTH a=Xb X_TO_Yvoid
visitStmt2R1N(Op op, int distReg, int srcReg, int content)
OP_X_INT_LIT8void
visitStmt3R(Op op, int a, int b, int c)
OP_ADD OP_SUB OP_MUL OP_DIV OP_REM OP_AND OP_OR OP_XOR OP_SHL OP_SHR OP_USHR OP_CMPL OP_CMPG OP_CMP OP_AGETX OP_APUTXvoid
visitTryCatch(DexLabel start, DexLabel end, DexLabel[] handler, java.lang.String[] type)
void
visitTypeStmt(Op op, int a, int b, java.lang.String type)
OP_INSTANCE_OF OP_NEW_ARRAY OP_CHECK_CAST OP_NEW_INSTANCE-
Methods inherited from class proguard.dexfile.reader.visitors.DexCodeVisitor
visitEnd
-
-
-
-
Field Detail
-
stmts
public java.util.List<DexStmtNode> stmts
-
tryStmts
public java.util.List<TryCatchNode> tryStmts
-
debugNode
public DexDebugNode debugNode
-
totalRegister
public int totalRegister
-
-
Constructor Detail
-
DexCodeNode
public DexCodeNode()
-
DexCodeNode
public DexCodeNode(DexCodeVisitor visitor)
-
-
Method Detail
-
accept
public void accept(DexCodeVisitor v)
-
accept
public void accept(DexMethodVisitor v)
-
add
protected void add(DexStmtNode stmt)
-
visitConstStmt
public void visitConstStmt(Op op, int ra, java.lang.Object value)
Description copied from class:DexCodeVisitor
CONST * CONST_WIDE * CONST_STRING * CONST_CLASS *
- Overrides:
visitConstStmt
in classDexCodeVisitor
value
- int/long/type
-
visitFillArrayDataStmt
public void visitFillArrayDataStmt(Op op, int ra, java.lang.Object array)
- Overrides:
visitFillArrayDataStmt
in classDexCodeVisitor
-
visitFieldStmt
public void visitFieldStmt(Op op, int a, int b, Field field)
Description copied from class:DexCodeVisitor
OP_IGETX a,b field OP_IPUTX a,b field OP_SGETX a field OP_SPUTX a field
- Overrides:
visitFieldStmt
in classDexCodeVisitor
-
visitFilledNewArrayStmt
public void visitFilledNewArrayStmt(Op op, int[] args, java.lang.String type)
Description copied from class:DexCodeVisitor
OP_FILLED_NEW_ARRAY
- Overrides:
visitFilledNewArrayStmt
in classDexCodeVisitor
-
visitJumpStmt
public void visitJumpStmt(Op op, int a, int b, DexLabel label)
Description copied from class:DexCodeVisitor
OP_IF_EQ OP_IF_NE OP_IF_LT OP_IF_GE OP_IF_GT OP_IF_LE OP_GOTO OP_IF_EQZ OP_IF_NEZ OP_IF_LTZ OP_IF_GEZ OP_IF_GTZ OP_IF_LEZ
- Overrides:
visitJumpStmt
in classDexCodeVisitor
-
visitLabel
public void visitLabel(DexLabel label)
- Overrides:
visitLabel
in classDexCodeVisitor
-
visitMethodStmt
public void visitMethodStmt(Op op, int[] args, Method method)
Description copied from class:DexCodeVisitor
OP_INVOKE_VIRTUAL OP_INVOKE_SUPER OP_INVOKE_DIRECT OP_INVOKE_STATIC OP_INVOKE_INTERFACE
- Overrides:
visitMethodStmt
in classDexCodeVisitor
-
visitMethodStmt
public void visitMethodStmt(Op op, int[] args, java.lang.String name, Proto proto, MethodHandle bsm, java.lang.Object... bsmArgs)
Description copied from class:DexCodeVisitor
OP_INVOKE_CUSTOM
- Overrides:
visitMethodStmt
in classDexCodeVisitor
-
visitMethodStmt
public void visitMethodStmt(Op op, int[] args, Method bsm, Proto proto)
Description copied from class:DexCodeVisitor
OP_INVOKE_POLYMORPHIC
- Overrides:
visitMethodStmt
in classDexCodeVisitor
-
visitPackedSwitchStmt
public void visitPackedSwitchStmt(Op op, int aA, int first_case, DexLabel[] labels)
- Overrides:
visitPackedSwitchStmt
in classDexCodeVisitor
-
visitRegister
public void visitRegister(int total)
- Overrides:
visitRegister
in classDexCodeVisitor
-
visitSparseSwitchStmt
public void visitSparseSwitchStmt(Op op, int ra, int[] cases, DexLabel[] labels)
- Overrides:
visitSparseSwitchStmt
in classDexCodeVisitor
-
visitStmt0R
public void visitStmt0R(Op op)
Description copied from class:DexCodeVisitor
- Overrides:
visitStmt0R
in classDexCodeVisitor
-
visitStmt1R
public void visitStmt1R(Op op, int reg)
Description copied from class:DexCodeVisitor
OP_RETURN_X OP_THROW_X OP_MONITOR_ENTER OP_MONITOR_EXIT OP_MOVE_RESULT_X OP_MOVE_EXCEPTION_X
- Overrides:
visitStmt1R
in classDexCodeVisitor
-
visitStmt2R
public void visitStmt2R(Op op, int a, int b)
Description copied from class:DexCodeVisitor
OP_MOVE* a = a X b OP_ARRAY_LENGTH a=Xb X_TO_Y
- Overrides:
visitStmt2R
in classDexCodeVisitor
-
visitStmt2R1N
public void visitStmt2R1N(Op op, int distReg, int srcReg, int content)
Description copied from class:DexCodeVisitor
OP_X_INT_LIT8
- Overrides:
visitStmt2R1N
in classDexCodeVisitor
-
visitStmt3R
public void visitStmt3R(Op op, int a, int b, int c)
Description copied from class:DexCodeVisitor
OP_ADD OP_SUB OP_MUL OP_DIV OP_REM OP_AND OP_OR OP_XOR OP_SHL OP_SHR OP_USHR OP_CMPL OP_CMPG OP_CMP OP_AGETX OP_APUTX
- Overrides:
visitStmt3R
in classDexCodeVisitor
-
visitTryCatch
public void visitTryCatch(DexLabel start, DexLabel end, DexLabel[] handler, java.lang.String[] type)
- Overrides:
visitTryCatch
in classDexCodeVisitor
-
visitTypeStmt
public void visitTypeStmt(Op op, int a, int b, java.lang.String type)
Description copied from class:DexCodeVisitor
OP_INSTANCE_OF OP_NEW_ARRAY OP_CHECK_CAST OP_NEW_INSTANCE
- Overrides:
visitTypeStmt
in classDexCodeVisitor
-
visitDebug
public DexDebugVisitor visitDebug()
- Overrides:
visitDebug
in classDexCodeVisitor
-
-