|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectedu.umd.cs.findbugs.visitclass.BetterVisitor
edu.umd.cs.findbugs.visitclass.PreorderVisitor
edu.umd.cs.findbugs.visitclass.DismantleBytecode
public abstract class DismantleBytecode
Field Summary | |
---|---|
private int |
branchFallThrough
|
private int |
branchOffset
|
private int |
branchTarget
|
private java.lang.String |
classConstantOperand
|
protected byte[] |
codeBytes
|
private org.apache.bcel.classfile.Constant |
constantRefOperand
|
private int |
defaultSwitchOffset
|
private java.lang.String |
dottedClassConstantOperand
|
private java.lang.String |
dottedSigConstantOperand
|
private double |
doubleConstant
|
private float |
floatConstant
|
private int |
intConstant
|
private static int |
INVALID_OFFSET
|
protected org.apache.bcel.classfile.LineNumberTable |
lineNumberTable
|
private long |
longConstant
|
static byte |
M_BR
|
static byte |
M_CP
|
static byte |
M_INT
Meaning of bytecode operands |
static byte |
M_PAD
|
static byte |
M_R
|
static byte |
M_UINT
|
(package private) static short[][] |
MEANING_OF_OPERANDS
Meaning of bytecode operands |
private java.lang.String |
nameConstantOperand
|
private static java.lang.String |
NOT_AVAILABLE
|
private int |
opcode
|
private boolean |
opcodeIsWide
|
private int |
PC
|
protected static int |
R_DOUBLE
|
protected static int |
R_FLOAT
|
protected static int |
R_INT
|
protected static int |
R_LONG
|
protected static int |
R_REF
|
private java.lang.String |
refConstantOperand
|
private boolean |
refFieldIsStatic
|
protected int |
registerKind
|
private int |
registerOperand
|
private static java.util.HashMap<java.lang.String,java.lang.String> |
replaceSlashesWithDotsCache
|
private java.lang.String |
sigConstantOperand
|
private java.lang.String |
stringConstantOperand
|
private int[] |
switchLabels
|
private int[] |
switchOffsets
|
Fields inherited from interface org.apache.bcel.Constants |
---|
AALOAD, AASTORE, ACC_ABSTRACT, ACC_FINAL, ACC_INTERFACE, ACC_NATIVE, ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC, ACC_STATIC, ACC_STRICT, ACC_SUPER, ACC_SYNCHRONIZED, ACC_TRANSIENT, ACC_VOLATILE, ACCESS_NAMES, ACONST_NULL, ALOAD, ALOAD_0, ALOAD_1, ALOAD_2, ALOAD_3, ANEWARRAY, ANEWARRAY_QUICK, ARETURN, ARRAYLENGTH, ASTORE, ASTORE_0, ASTORE_1, ASTORE_2, ASTORE_3, ATHROW, ATTR_CODE, ATTR_CONSTANT_VALUE, ATTR_DEPRECATED, ATTR_EXCEPTIONS, ATTR_INNER_CLASSES, ATTR_LINE_NUMBER_TABLE, ATTR_LOCAL_VARIABLE_TABLE, ATTR_PMG, ATTR_SIGNATURE, ATTR_SOURCE_FILE, ATTR_STACK_MAP, ATTR_SYNTHETIC, ATTR_UNKNOWN, ATTRIBUTE_NAMES, BALOAD, BASTORE, BIPUSH, BREAKPOINT, CALOAD, CASTORE, CHECKCAST, CHECKCAST_QUICK, CLASS_TYPE_NAMES, CONSTANT_Class, CONSTANT_Double, CONSTANT_Fieldref, CONSTANT_Float, CONSTANT_Integer, CONSTANT_InterfaceMethodref, CONSTANT_Long, CONSTANT_Methodref, CONSTANT_NameAndType, CONSTANT_NAMES, CONSTANT_String, CONSTANT_Utf8, CONSTRUCTOR_NAME, CONSUME_STACK, 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, GETFIELD_QUICK, GETFIELD_QUICK_W, GETFIELD2_QUICK, GETSTATIC, GETSTATIC_QUICK, GETSTATIC2_QUICK, 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, ILLEGAL_OPCODE, ILLEGAL_TYPE, ILOAD, ILOAD_0, ILOAD_1, ILOAD_2, ILOAD_3, IMPDEP1, IMPDEP2, IMUL, INEG, INSTANCEOF, INSTANCEOF_QUICK, INT2BYTE, INT2CHAR, INT2SHORT, INTERFACES_IMPLEMENTED_BY_ARRAYS, INVOKEINTERFACE, INVOKEINTERFACE_QUICK, INVOKENONVIRTUAL, INVOKENONVIRTUAL_QUICK, INVOKESPECIAL, INVOKESTATIC, INVOKESTATIC_QUICK, INVOKESUPER_QUICK, INVOKEVIRTUAL, INVOKEVIRTUAL_QUICK, INVOKEVIRTUAL_QUICK_W, INVOKEVIRTUALOBJECT_QUICK, IOR, IREM, IRETURN, ISHL, ISHR, ISTORE, ISTORE_0, ISTORE_1, ISTORE_2, ISTORE_3, ISUB, ITEM_Bogus, ITEM_Double, ITEM_Float, ITEM_InitObject, ITEM_Integer, ITEM_Long, ITEM_NAMES, ITEM_NewObject, ITEM_Null, ITEM_Object, IUSHR, IXOR, JSR, JSR_W, KNOWN_ATTRIBUTES, L2D, L2F, L2I, LADD, LALOAD, LAND, LASTORE, LCMP, LCONST_0, LCONST_1, LDC, LDC_QUICK, LDC_W, LDC_W_QUICK, LDC2_W, LDC2_W_QUICK, 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, MAJOR, MAJOR_1_1, MAJOR_1_2, MAJOR_1_3, MAX_ACC_FLAG, MAX_BYTE, MAX_CODE_SIZE, MAX_CP_ENTRIES, MAX_SHORT, MINOR, MINOR_1_1, MINOR_1_2, MINOR_1_3, MONITORENTER, MONITOREXIT, MULTIANEWARRAY, MULTIANEWARRAY_QUICK, NEW, NEW_QUICK, NEWARRAY, NO_OF_OPERANDS, NOP, OPCODE_NAMES, POP, POP2, PRODUCE_STACK, PUSH, PUTFIELD, PUTFIELD_QUICK, PUTFIELD_QUICK_W, PUTFIELD2_QUICK, PUTSTATIC, PUTSTATIC_QUICK, PUTSTATIC2_QUICK, RESERVED, RET, RETURN, SALOAD, SASTORE, SHORT_TYPE_NAMES, SIPUSH, STATIC_INITIALIZER_NAME, SWAP, SWITCH, T_ADDRESS, T_ARRAY, T_BOOLEAN, T_BYTE, T_CHAR, T_DOUBLE, T_FLOAT, T_INT, T_LONG, T_OBJECT, T_REFERENCE, T_SHORT, T_UNKNOWN, T_VOID, TABLESWITCH, TYPE_NAMES, TYPE_OF_OPERANDS, UNDEFINED, UNPREDICTABLE, WIDE |
Constructor Summary | |
---|---|
DismantleBytecode()
|
Method Summary | |
---|---|
int |
getBranchFallThrough()
|
int |
getBranchOffset()
|
int |
getBranchTarget()
|
java.lang.String |
getClassConstantOperand()
|
org.apache.bcel.classfile.Constant |
getConstantRefOperand()
|
int |
getDefaultSwitchOffset()
|
java.lang.String |
getDottedClassConstantOperand()
If the current opcode has a class operand, get the associated class constant, dot-formatted |
java.lang.String |
getDottedSigConstantOperand()
If the current opcode has a reference constant operand, get its signature, dot-formatted |
int |
getIntConstant()
|
java.lang.String |
getNameConstantOperand()
If the current opcode has a reference constant operand, get its name |
int |
getPC()
|
java.lang.String |
getRefConstantOperand()
If the current opcode has a reference constant operand, get its string representation |
boolean |
getRefFieldIsStatic()
|
int |
getRegisterOperand()
|
java.lang.String |
getSigConstantOperand()
If the current opcode has a reference constant operand, get its signature, slash-formatted |
java.lang.String |
getStringConstantOperand()
If the current opcode has a string constant operand, get its name |
int[] |
getSwitchLabels()
|
int[] |
getSwitchOffsets()
|
(package private) static java.lang.String |
replaceSlashesWithDots(java.lang.String c)
|
private void |
resetState()
|
void |
sawClass()
|
void |
sawDouble(double seen)
|
void |
sawField()
|
void |
sawFloat(float seen)
|
void |
sawIMethod()
|
void |
sawInt(int seen)
|
void |
sawLong(long seen)
|
void |
sawMethod()
|
void |
sawOffset(int seen)
|
void |
sawOpcode(int seen)
|
void |
sawRegister(int r)
|
void |
sawString(java.lang.String seen)
|
private static void |
sortByOffset(int[] switchOffsets,
int[] switchLabels)
|
void |
visit(org.apache.bcel.classfile.Code obj)
|
Methods inherited from class edu.umd.cs.findbugs.visitclass.BetterVisitor |
---|
report, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visitCodeException, visitConstantClass, visitConstantDouble, visitConstantFieldref, visitConstantFloat, visitConstantInteger, visitConstantInterfaceMethodref, visitConstantLong, visitConstantMethodref, visitConstantNameAndType, visitConstantString, visitConstantUtf8, visitConstantValue, visitDeprecated, visitExceptionTable, visitField, visitInnerClass, visitLineNumber, visitLocalVariable, visitMethod, visitSignature, visitSourceFile, visitStackMap, visitStackMapEntry, visitSynthetic, visitUnknown |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
private int opcode
private boolean opcodeIsWide
private int PC
private int branchOffset
private int branchTarget
private int branchFallThrough
private int[] switchOffsets
private int[] switchLabels
private int defaultSwitchOffset
private java.lang.String classConstantOperand
private java.lang.String dottedClassConstantOperand
private java.lang.String nameConstantOperand
private java.lang.String sigConstantOperand
private java.lang.String dottedSigConstantOperand
private java.lang.String stringConstantOperand
private java.lang.String refConstantOperand
private boolean refFieldIsStatic
private org.apache.bcel.classfile.Constant constantRefOperand
private int intConstant
private long longConstant
private float floatConstant
private double doubleConstant
private int registerOperand
private static final int INVALID_OFFSET
private static final java.lang.String NOT_AVAILABLE
protected static final int R_INT
protected static final int R_LONG
protected static final int R_FLOAT
protected static final int R_DOUBLE
protected static final int R_REF
protected int registerKind
private static java.util.HashMap<java.lang.String,java.lang.String> replaceSlashesWithDotsCache
public static final byte M_INT
public static final byte M_UINT
public static final byte M_CP
public static final byte M_R
public static final byte M_BR
public static final byte M_PAD
static final short[][] MEANING_OF_OPERANDS
protected byte[] codeBytes
protected org.apache.bcel.classfile.LineNumberTable lineNumberTable
Constructor Detail |
---|
public DismantleBytecode()
Method Detail |
---|
static java.lang.String replaceSlashesWithDots(java.lang.String c)
public java.lang.String getDottedClassConstantOperand()
public java.lang.String getRefConstantOperand()
public java.lang.String getNameConstantOperand()
public java.lang.String getDottedSigConstantOperand()
public java.lang.String getSigConstantOperand()
public java.lang.String getClassConstantOperand()
public java.lang.String getStringConstantOperand()
public org.apache.bcel.classfile.Constant getConstantRefOperand()
public int getRegisterOperand()
public int getIntConstant()
public int getBranchOffset()
public int getBranchTarget()
public int getBranchFallThrough()
public int getDefaultSwitchOffset()
public boolean getRefFieldIsStatic()
public int getPC()
public int[] getSwitchOffsets()
public int[] getSwitchLabels()
private void resetState()
private static void sortByOffset(int[] switchOffsets, int[] switchLabels)
public void visit(org.apache.bcel.classfile.Code obj)
visit
in class BetterVisitor
public void sawDouble(double seen)
public void sawFloat(float seen)
public void sawRegister(int r)
public void sawInt(int seen)
public void sawLong(long seen)
public void sawOffset(int seen)
public void sawOpcode(int seen)
public void sawString(java.lang.String seen)
public void sawField()
public void sawMethod()
public void sawIMethod()
public void sawClass()
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |