Modifier and Type | Field and Description |
---|---|
private CodeAttribute |
codeAttr |
private ConstPool |
constPool |
AALOAD, AASTORE, ACONST_NULL, ALOAD, ALOAD_0, ALOAD_1, ALOAD_2, ALOAD_3, ANEWARRAY, ARETURN, ARRAYLENGTH, ASTORE, ASTORE_0, ASTORE_1, ASTORE_2, ASTORE_3, ATHROW, BALOAD, BASTORE, BIPUSH, CALOAD, CASTORE, CHECKCAST, D2F, D2I, D2L, DADD, DALOAD, DASTORE, DCMPG, DCMPL, DCONST_0, DCONST_1, DDIV, DLOAD, DLOAD_0, DLOAD_1, DLOAD_2, DLOAD_3, DMUL, DNEG, DREM, DRETURN, DSTORE, DSTORE_0, DSTORE_1, DSTORE_2, DSTORE_3, DSUB, DUP, DUP_X1, DUP_X2, DUP2, DUP2_X1, DUP2_X2, F2D, F2I, F2L, FADD, FALOAD, FASTORE, FCMPG, FCMPL, FCONST_0, FCONST_1, FCONST_2, FDIV, FLOAD, FLOAD_0, FLOAD_1, FLOAD_2, FLOAD_3, FMUL, FNEG, FREM, FRETURN, FSTORE, FSTORE_0, FSTORE_1, FSTORE_2, FSTORE_3, FSUB, GETFIELD, GETSTATIC, GOTO, GOTO_W, I2B, I2C, I2D, I2F, I2L, I2S, IADD, IALOAD, IAND, IASTORE, ICONST_0, ICONST_1, ICONST_2, ICONST_3, ICONST_4, ICONST_5, ICONST_M1, IDIV, IF_ACMPEQ, IF_ACMPNE, IF_ICMPEQ, IF_ICMPGE, IF_ICMPGT, IF_ICMPLE, IF_ICMPLT, IF_ICMPNE, IFEQ, IFGE, IFGT, IFLE, IFLT, IFNE, IFNONNULL, IFNULL, IINC, ILOAD, ILOAD_0, ILOAD_1, ILOAD_2, ILOAD_3, IMUL, INEG, INSTANCEOF, INVOKEDYNAMIC, INVOKEINTERFACE, INVOKESPECIAL, INVOKESTATIC, INVOKEVIRTUAL, IOR, IREM, IRETURN, ISHL, ISHR, ISTORE, ISTORE_0, ISTORE_1, ISTORE_2, ISTORE_3, ISUB, IUSHR, IXOR, JSR, JSR_W, L2D, L2F, L2I, LADD, LALOAD, LAND, LASTORE, LCMP, LCONST_0, LCONST_1, LDC, LDC_W, LDC2_W, LDIV, LLOAD, LLOAD_0, LLOAD_1, LLOAD_2, LLOAD_3, LMUL, LNEG, LOOKUPSWITCH, LOR, LREM, LRETURN, LSHL, LSHR, LSTORE, LSTORE_0, LSTORE_1, LSTORE_2, LSTORE_3, LSUB, LUSHR, LXOR, MONITORENTER, MONITOREXIT, MULTIANEWARRAY, NEW, NEWARRAY, NOP, POP, POP2, PUTFIELD, PUTSTATIC, RET, RETURN, SALOAD, SASTORE, SIPUSH, STACK_GROW, SWAP, T_BOOLEAN, T_BYTE, T_CHAR, T_DOUBLE, T_FLOAT, T_INT, T_LONG, T_SHORT, TABLESWITCH, WIDE
Constructor and Description |
---|
CodeAnalyzer(CodeAttribute ca) |
Modifier and Type | Method and Description |
---|---|
private void |
checkTarget(int opIndex,
int target,
int codeLength,
int[] stack,
int stackDepth) |
int |
computeMaxStack() |
private int |
getFieldSize(CodeIterator ci,
int index) |
private void |
initStack(int[] stack,
CodeAttribute ca) |
private static boolean |
isEnd(int opcode) |
private boolean |
processBranch(int opcode,
CodeIterator ci,
int index,
int codeLength,
int[] stack,
int stackDepth,
int[] jsrDepth) |
private void |
visitBytecode(CodeIterator ci,
int[] stack,
int index) |
private int |
visitInst(int op,
CodeIterator ci,
int index,
int stack)
Visits an instruction.
|
private ConstPool constPool
private CodeAttribute codeAttr
public CodeAnalyzer(CodeAttribute ca)
public int computeMaxStack() throws BadBytecode
BadBytecode
private void initStack(int[] stack, CodeAttribute ca)
private void visitBytecode(CodeIterator ci, int[] stack, int index) throws BadBytecode
BadBytecode
private boolean processBranch(int opcode, CodeIterator ci, int index, int codeLength, int[] stack, int stackDepth, int[] jsrDepth) throws BadBytecode
BadBytecode
private void checkTarget(int opIndex, int target, int codeLength, int[] stack, int stackDepth) throws BadBytecode
BadBytecode
private static boolean isEnd(int opcode)
private int visitInst(int op, CodeIterator ci, int index, int stack) throws BadBytecode
BadBytecode
private int getFieldSize(CodeIterator ci, int index)