public class TypeFrameModelingVisitor extends AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame> implements org.apache.bcel.Constants, Debug
TypeFrame
,
TypeAnalysis
Modifier and Type | Field and Description |
---|---|
static boolean |
DEBUG |
protected java.util.BitSet |
genericLocalVariables |
protected org.apache.bcel.classfile.LocalVariableTypeTable |
localTypeTable |
static java.util.regex.Pattern |
mapSignaturePattern |
protected TypeMerger |
typeMerger |
cpg
AALOAD, AASTORE, ACC_ABSTRACT, ACC_ANNOTATION, ACC_BRIDGE, ACC_ENUM, ACC_FINAL, ACC_INTERFACE, ACC_NATIVE, ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC, ACC_STATIC, ACC_STRICT, ACC_SUPER, ACC_SYNCHRONIZED, ACC_SYNTHETIC, ACC_SYPER, ACC_TRANSIENT, ACC_VARARGS, ACC_VOLATILE, ACCESS_NAMES, ACONST_NULL, ALOAD, ALOAD_0, ALOAD_1, ALOAD_2, ALOAD_3, ANEWARRAY, ANEWARRAY_QUICK, APPEND_FRAME, APPEND_FRAME_MAX, ARETURN, ARRAYLENGTH, ASTORE, ASTORE_0, ASTORE_1, ASTORE_2, ASTORE_3, ATHROW, ATTR_ANNOTATION_DEFAULT, ATTR_CODE, ATTR_CONSTANT_VALUE, ATTR_DEPRECATED, ATTR_ENCLOSING_METHOD, ATTR_EXCEPTIONS, ATTR_INNER_CLASSES, ATTR_LINE_NUMBER_TABLE, ATTR_LOCAL_VARIABLE_TABLE, ATTR_LOCAL_VARIABLE_TYPE_TABLE, ATTR_PMG, ATTR_RUNTIME_VISIBLE_ANNOTATIONS, ATTR_RUNTIME_VISIBLE_PARAMETER_ANNOTATIONS, ATTR_RUNTIMEIN_VISIBLE_ANNOTATIONS, ATTR_RUNTIMEIN_VISIBLE_PARAMETER_ANNOTATIONS, ATTR_SIGNATURE, ATTR_SOURCE_FILE, ATTR_STACK_MAP, ATTR_STACK_MAP_TABLE, ATTR_SYNTHETIC, ATTR_UNKNOWN, ATTRIBUTE_NAMES, BALOAD, BASTORE, BIPUSH, BREAKPOINT, CALOAD, CASTORE, CHECKCAST, CHECKCAST_QUICK, CHOP_FRAME, CHOP_FRAME_MAX, CLASS_TYPE_NAMES, CONSTANT_Class, CONSTANT_Double, CONSTANT_Fieldref, CONSTANT_Float, CONSTANT_Integer, CONSTANT_InterfaceMethodref, CONSTANT_InvokeDynamic, CONSTANT_Long, CONSTANT_MethodHandle, CONSTANT_Methodref, CONSTANT_MethodType, 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, FULL_FRAME, 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, INVOKEDYNAMIC, 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, MAJOR_1_4, MAJOR_1_5, MAJOR_1_6, MAJOR_1_7, MAJOR_1_8, MAX_ACC_FLAG, MAX_BYTE, MAX_CODE_SIZE, MAX_CP_ENTRIES, MAX_SHORT, MINOR, MINOR_1_1, MINOR_1_2, MINOR_1_3, MINOR_1_4, MINOR_1_5, MINOR_1_6, MINOR_1_7, MINOR_1_8, 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, SAME_FRAME, SAME_FRAME_EXTENDED, SAME_FRAME_MAX, SAME_LOCALS_1_STACK_ITEM_FRAME, SAME_LOCALS_1_STACK_ITEM_FRAME_EXTENDED, SAME_LOCALS_1_STACK_ITEM_FRAME_MAX, 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
VERIFY_INTEGRITY
Constructor and Description |
---|
TypeFrameModelingVisitor(org.apache.bcel.generic.ConstantPoolGen cpg,
TypeMerger typeMerger)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
void |
analyzeInstruction(org.apache.bcel.generic.Instruction ins)
Analyze the given Instruction.
|
protected void |
consumeStack(org.apache.bcel.generic.Instruction ins)
Consume stack.
|
org.apache.bcel.generic.Type |
getDefaultValue()
Produce a "default" value.
|
org.apache.bcel.generic.Type |
getInstanceOfType()
Get the type of the most recent instanceof instruction modeled.
|
ValueNumber |
getInstanceOfValueNumber()
Get the value number of the most recent instanceof instruction modeled.
|
static org.apache.bcel.generic.Type |
getType(XField xfield) |
void |
handleLoadInstruction(org.apache.bcel.generic.LoadInstruction obj)
Handler for all instructions which load values from a local variable and
push them on the stack.
|
void |
handleStoreInstruction(org.apache.bcel.generic.StoreInstruction obj)
Handler for all instructions which pop values from the stack and store
them in a local variable.
|
boolean |
isImpliedByGenericTypes(org.apache.bcel.generic.ReferenceType t) |
boolean |
isInstanceOfFollowedByBranch()
Return whether an instanceof instruction was followed by a branch.
|
static boolean |
isStraightGenericMap(ClassDescriptor c) |
void |
modelFieldLoad(org.apache.bcel.generic.FieldInstruction obj) |
void |
modelNormalInstruction(org.apache.bcel.generic.Instruction ins,
int numWordsConsumed,
int numWordsProduced)
This is overridden only to ensure that we don't rely on the base class to
handle instructions that produce stack operands.
|
protected void |
pushReturnType(org.apache.bcel.generic.InvokeInstruction ins)
Helper for pushing the return type of an invoke instruction.
|
protected void |
pushValue(org.apache.bcel.generic.Type type)
Work around some weirdness in BCEL (inherited from JVM Spec 1): BCEL
considers long and double types to consume two slots on the stack.
|
void |
setFieldStoreTypeDatabase(FieldStoreTypeDatabase database)
Set the field store type database.
|
void |
setLocalTypeTable(org.apache.bcel.classfile.LocalVariableTypeTable localTypeTable) |
void |
setValueNumberDataflow(ValueNumberDataflow valueNumberDataflow)
Set ValueNumberDataflow for the method being analyzed.
|
void |
startBasicBlock()
This method must be called at the beginning of modeling a basic block in
order to clear information cached for instanceof modeling.
|
void |
visitAALOAD(org.apache.bcel.generic.AALOAD obj) |
void |
visitACONST_NULL(org.apache.bcel.generic.ACONST_NULL obj) |
void |
visitANEWARRAY(org.apache.bcel.generic.ANEWARRAY obj) |
void |
visitARRAYLENGTH(org.apache.bcel.generic.ARRAYLENGTH obj) |
void |
visitATHROW(org.apache.bcel.generic.ATHROW obj) |
void |
visitBALOAD(org.apache.bcel.generic.BALOAD obj) |
void |
visitBIPUSH(org.apache.bcel.generic.BIPUSH obj) |
void |
visitCALOAD(org.apache.bcel.generic.CALOAD obj) |
void |
visitCHECKCAST(org.apache.bcel.generic.CHECKCAST obj) |
void |
visitD2F(org.apache.bcel.generic.D2F obj) |
void |
visitD2I(org.apache.bcel.generic.D2I obj) |
void |
visitD2L(org.apache.bcel.generic.D2L obj) |
void |
visitDADD(org.apache.bcel.generic.DADD obj) |
void |
visitDALOAD(org.apache.bcel.generic.DALOAD obj) |
void |
visitDCMPG(org.apache.bcel.generic.DCMPG obj) |
void |
visitDCMPL(org.apache.bcel.generic.DCMPL obj) |
void |
visitDCONST(org.apache.bcel.generic.DCONST obj) |
void |
visitDDIV(org.apache.bcel.generic.DDIV obj) |
void |
visitDMUL(org.apache.bcel.generic.DMUL obj) |
void |
visitDNEG(org.apache.bcel.generic.DNEG obj) |
void |
visitDREM(org.apache.bcel.generic.DREM obj) |
void |
visitDSUB(org.apache.bcel.generic.DSUB obj) |
void |
visitDUP(org.apache.bcel.generic.DUP obj) |
void |
visitF2D(org.apache.bcel.generic.F2D obj) |
void |
visitF2I(org.apache.bcel.generic.F2I obj) |
void |
visitF2L(org.apache.bcel.generic.F2L obj) |
void |
visitFADD(org.apache.bcel.generic.FADD obj) |
void |
visitFALOAD(org.apache.bcel.generic.FALOAD obj) |
void |
visitFCMPG(org.apache.bcel.generic.FCMPG obj) |
void |
visitFCMPL(org.apache.bcel.generic.FCMPL obj) |
void |
visitFCONST(org.apache.bcel.generic.FCONST obj) |
void |
visitFDIV(org.apache.bcel.generic.FDIV obj) |
void |
visitFMUL(org.apache.bcel.generic.FMUL obj) |
void |
visitFNEG(org.apache.bcel.generic.FNEG obj) |
void |
visitFREM(org.apache.bcel.generic.FREM obj) |
void |
visitFSUB(org.apache.bcel.generic.FSUB obj) |
void |
visitGETFIELD(org.apache.bcel.generic.GETFIELD obj) |
void |
visitGETSTATIC(org.apache.bcel.generic.GETSTATIC obj) |
void |
visitI2B(org.apache.bcel.generic.I2B obj) |
void |
visitI2C(org.apache.bcel.generic.I2C obj) |
void |
visitI2D(org.apache.bcel.generic.I2D obj) |
void |
visitI2F(org.apache.bcel.generic.I2F obj) |
void |
visitI2L(org.apache.bcel.generic.I2L obj) |
void |
visitI2S(org.apache.bcel.generic.I2S obj) |
void |
visitIADD(org.apache.bcel.generic.IADD obj) |
void |
visitIALOAD(org.apache.bcel.generic.IALOAD obj) |
void |
visitIAND(org.apache.bcel.generic.IAND obj) |
void |
visitICONST(org.apache.bcel.generic.ICONST obj) |
void |
visitIDIV(org.apache.bcel.generic.IDIV obj) |
void |
visitIFEQ(org.apache.bcel.generic.IFEQ obj) |
void |
visitIFGT(org.apache.bcel.generic.IFGT obj) |
void |
visitIFLE(org.apache.bcel.generic.IFLE obj) |
void |
visitIFNE(org.apache.bcel.generic.IFNE obj) |
void |
visitIFNONNULL(org.apache.bcel.generic.IFNONNULL obj) |
void |
visitIFNULL(org.apache.bcel.generic.IFNULL obj) |
void |
visitIINC(org.apache.bcel.generic.IINC obj) |
void |
visitIMUL(org.apache.bcel.generic.IMUL obj) |
void |
visitINEG(org.apache.bcel.generic.INEG obj) |
void |
visitINSTANCEOF(org.apache.bcel.generic.INSTANCEOF obj) |
void |
visitInvokeInstructionCommon(org.apache.bcel.generic.InvokeInstruction obj) |
void |
visitINVOKEINTERFACE(org.apache.bcel.generic.INVOKEINTERFACE obj) |
void |
visitINVOKESPECIAL(org.apache.bcel.generic.INVOKESPECIAL obj) |
void |
visitINVOKESTATIC(org.apache.bcel.generic.INVOKESTATIC obj) |
void |
visitINVOKEVIRTUAL(org.apache.bcel.generic.INVOKEVIRTUAL obj) |
void |
visitIOR(org.apache.bcel.generic.IOR obj) |
void |
visitIREM(org.apache.bcel.generic.IREM obj) |
void |
visitISHL(org.apache.bcel.generic.ISHL obj) |
void |
visitISHR(org.apache.bcel.generic.ISHR obj) |
void |
visitISUB(org.apache.bcel.generic.ISUB obj) |
void |
visitIUSHR(org.apache.bcel.generic.IUSHR obj) |
void |
visitIXOR(org.apache.bcel.generic.IXOR obj) |
void |
visitJSR_W(org.apache.bcel.generic.JSR_W obj) |
void |
visitJSR(org.apache.bcel.generic.JSR obj) |
void |
visitL2D(org.apache.bcel.generic.L2D obj) |
void |
visitL2F(org.apache.bcel.generic.L2F obj) |
void |
visitL2I(org.apache.bcel.generic.L2I obj) |
void |
visitLADD(org.apache.bcel.generic.LADD obj) |
void |
visitLALOAD(org.apache.bcel.generic.LALOAD obj) |
void |
visitLAND(org.apache.bcel.generic.LAND obj) |
void |
visitLCMP(org.apache.bcel.generic.LCMP obj) |
void |
visitLCONST(org.apache.bcel.generic.LCONST obj) |
void |
visitLDC(org.apache.bcel.generic.LDC obj) |
void |
visitLDC2_W(org.apache.bcel.generic.LDC2_W obj) |
void |
visitLDIV(org.apache.bcel.generic.LDIV obj) |
void |
visitLMUL(org.apache.bcel.generic.LMUL obj) |
void |
visitLNEG(org.apache.bcel.generic.LNEG obj) |
void |
visitLOR(org.apache.bcel.generic.LOR obj) |
void |
visitLREM(org.apache.bcel.generic.LREM obj) |
void |
visitLSHL(org.apache.bcel.generic.LSHL obj) |
void |
visitLSHR(org.apache.bcel.generic.LSHR obj) |
void |
visitLSUB(org.apache.bcel.generic.LSUB obj) |
void |
visitLUSHR(org.apache.bcel.generic.LUSHR obj) |
void |
visitLXOR(org.apache.bcel.generic.LXOR obj) |
void |
visitMULTIANEWARRAY(org.apache.bcel.generic.MULTIANEWARRAY obj) |
void |
visitNEW(org.apache.bcel.generic.NEW obj) |
void |
visitNEWARRAY(org.apache.bcel.generic.NEWARRAY obj) |
void |
visitRET(org.apache.bcel.generic.RET obj) |
void |
visitSALOAD(org.apache.bcel.generic.SALOAD obj) |
void |
visitSIPUSH(org.apache.bcel.generic.SIPUSH obj) |
getCPG, getFrame, getLocation, getNumWordsConsumed, getNumWordsProduced, handleNormalInstruction, modelInstruction, setFrameAndLocation, visitAASTORE, visitAllocationInstruction, visitALOAD, visitARETURN, visitArithmeticInstruction, visitArrayInstruction, visitASTORE, visitBASTORE, visitBranchInstruction, visitBREAKPOINT, visitCASTORE, visitConstantPushInstruction, visitConversionInstruction, visitConversionInstruction2, visitCPInstruction, visitDASTORE, visitDLOAD, visitDRETURN, visitDSTORE, visitDUP_X1, visitDUP_X2, visitDUP2_X1, visitDUP2_X2, visitDUP2, visitExceptionThrower, visitFASTORE, visitFieldInstruction, visitFieldOrMethod, visitFLOAD, visitFRETURN, visitFSTORE, visitGOTO_W, visitGOTO, visitGotoInstruction, visitIASTORE, visitIF_ACMPEQ, visitIF_ACMPNE, visitIF_ICMPEQ, visitIF_ICMPGE, visitIF_ICMPGT, visitIF_ICMPLE, visitIF_ICMPLT, visitIF_ICMPNE, visitIFGE, visitIfInstruction, visitIFLT, visitILOAD, visitIMPDEP1, visitIMPDEP2, visitINVOKEDYNAMIC, visitInvokeInstruction, visitIRETURN, visitISTORE, visitJsrInstruction, visitLASTORE, visitLLOAD, visitLoadClass, visitLoadInstruction, visitLocalVariableInstruction, visitLOOKUPSWITCH, visitLRETURN, visitLSTORE, visitMONITORENTER, visitMONITOREXIT, visitNONNULL2Z, visitNOP, visitNULL2Z, visitPOP, visitPOP2, visitPopInstruction, visitPushInstruction, visitPUTFIELD, visitPUTSTATIC, visitRETURN, visitReturnInstruction, visitSASTORE, visitSelect, visitStackConsumer, visitStackInstruction, visitStackProducer, visitStoreInstruction, visitSWAP, visitTABLESWITCH, visitTypedInstruction, visitUnconditionalBranch, visitVariableLengthInstruction
protected final TypeMerger typeMerger
protected org.apache.bcel.classfile.LocalVariableTypeTable localTypeTable
protected java.util.BitSet genericLocalVariables
public static final boolean DEBUG
public static final java.util.regex.Pattern mapSignaturePattern
public TypeFrameModelingVisitor(org.apache.bcel.generic.ConstantPoolGen cpg, TypeMerger typeMerger)
cpg
- the ConstantPoolGen of the method whose instructions we are
examiningtypeMerger
- TODOpublic void setValueNumberDataflow(ValueNumberDataflow valueNumberDataflow)
valueNumberDataflow
- the ValueNumberDataflowpublic void setLocalTypeTable(org.apache.bcel.classfile.LocalVariableTypeTable localTypeTable)
public boolean isInstanceOfFollowedByBranch()
public org.apache.bcel.generic.Type getInstanceOfType()
public ValueNumber getInstanceOfValueNumber()
public void setFieldStoreTypeDatabase(FieldStoreTypeDatabase database)
database
- the FieldStoreTypeDatabasepublic org.apache.bcel.generic.Type getDefaultValue()
AbstractFrameModelingVisitor
getDefaultValue
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void analyzeInstruction(org.apache.bcel.generic.Instruction ins) throws DataflowAnalysisException
AbstractFrameModelingVisitor
analyzeInstruction
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
ins
- the InstructionDataflowAnalysisException
- if an error occurs analyzing the instruction; in most cases,
this indicates that the bytecode for the method being
analyzed is invalidpublic void startBasicBlock()
protected void consumeStack(org.apache.bcel.generic.Instruction ins)
protected void pushValue(org.apache.bcel.generic.Type type)
protected void pushReturnType(org.apache.bcel.generic.InvokeInstruction ins)
public void modelNormalInstruction(org.apache.bcel.generic.Instruction ins, int numWordsConsumed, int numWordsProduced)
modelNormalInstruction
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
ins
- the Instruction to modelnumWordsConsumed
- number of stack words consumednumWordsProduced
- number of stack words producedpublic void visitATHROW(org.apache.bcel.generic.ATHROW obj)
visitATHROW
in interface org.apache.bcel.generic.Visitor
visitATHROW
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitACONST_NULL(org.apache.bcel.generic.ACONST_NULL obj)
visitACONST_NULL
in interface org.apache.bcel.generic.Visitor
visitACONST_NULL
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitDCONST(org.apache.bcel.generic.DCONST obj)
visitDCONST
in interface org.apache.bcel.generic.Visitor
visitDCONST
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitFCONST(org.apache.bcel.generic.FCONST obj)
visitFCONST
in interface org.apache.bcel.generic.Visitor
visitFCONST
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitICONST(org.apache.bcel.generic.ICONST obj)
visitICONST
in interface org.apache.bcel.generic.Visitor
visitICONST
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitLCONST(org.apache.bcel.generic.LCONST obj)
visitLCONST
in interface org.apache.bcel.generic.Visitor
visitLCONST
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitLDC(org.apache.bcel.generic.LDC obj)
visitLDC
in interface org.apache.bcel.generic.Visitor
visitLDC
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitLDC2_W(org.apache.bcel.generic.LDC2_W obj)
visitLDC2_W
in interface org.apache.bcel.generic.Visitor
visitLDC2_W
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitBIPUSH(org.apache.bcel.generic.BIPUSH obj)
visitBIPUSH
in interface org.apache.bcel.generic.Visitor
visitBIPUSH
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitSIPUSH(org.apache.bcel.generic.SIPUSH obj)
visitSIPUSH
in interface org.apache.bcel.generic.Visitor
visitSIPUSH
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitGETSTATIC(org.apache.bcel.generic.GETSTATIC obj)
visitGETSTATIC
in interface org.apache.bcel.generic.Visitor
visitGETSTATIC
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitGETFIELD(org.apache.bcel.generic.GETFIELD obj)
visitGETFIELD
in interface org.apache.bcel.generic.Visitor
visitGETFIELD
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void modelFieldLoad(org.apache.bcel.generic.FieldInstruction obj)
public static org.apache.bcel.generic.Type getType(XField xfield)
public void visitINVOKESTATIC(org.apache.bcel.generic.INVOKESTATIC obj)
visitINVOKESTATIC
in interface org.apache.bcel.generic.Visitor
visitINVOKESTATIC
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitINVOKESPECIAL(org.apache.bcel.generic.INVOKESPECIAL obj)
visitINVOKESPECIAL
in interface org.apache.bcel.generic.Visitor
visitINVOKESPECIAL
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitINVOKEINTERFACE(org.apache.bcel.generic.INVOKEINTERFACE obj)
visitINVOKEINTERFACE
in interface org.apache.bcel.generic.Visitor
visitINVOKEINTERFACE
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitINVOKEVIRTUAL(org.apache.bcel.generic.INVOKEVIRTUAL obj)
visitINVOKEVIRTUAL
in interface org.apache.bcel.generic.Visitor
visitINVOKEVIRTUAL
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitInvokeInstructionCommon(org.apache.bcel.generic.InvokeInstruction obj)
public static boolean isStraightGenericMap(ClassDescriptor c)
public void handleStoreInstruction(org.apache.bcel.generic.StoreInstruction obj)
AbstractFrameModelingVisitor
handleStoreInstruction
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void handleLoadInstruction(org.apache.bcel.generic.LoadInstruction obj)
handleLoadInstruction
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitCHECKCAST(org.apache.bcel.generic.CHECKCAST obj)
visitCHECKCAST
in interface org.apache.bcel.generic.Visitor
visitCHECKCAST
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitINSTANCEOF(org.apache.bcel.generic.INSTANCEOF obj)
visitINSTANCEOF
in interface org.apache.bcel.generic.Visitor
visitINSTANCEOF
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitIFNULL(org.apache.bcel.generic.IFNULL obj)
visitIFNULL
in interface org.apache.bcel.generic.Visitor
visitIFNULL
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitIFNONNULL(org.apache.bcel.generic.IFNONNULL obj)
visitIFNONNULL
in interface org.apache.bcel.generic.Visitor
visitIFNONNULL
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitFCMPL(org.apache.bcel.generic.FCMPL obj)
visitFCMPL
in interface org.apache.bcel.generic.Visitor
visitFCMPL
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitFCMPG(org.apache.bcel.generic.FCMPG obj)
visitFCMPG
in interface org.apache.bcel.generic.Visitor
visitFCMPG
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitDCMPL(org.apache.bcel.generic.DCMPL obj)
visitDCMPL
in interface org.apache.bcel.generic.Visitor
visitDCMPL
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitDCMPG(org.apache.bcel.generic.DCMPG obj)
visitDCMPG
in interface org.apache.bcel.generic.Visitor
visitDCMPG
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitLCMP(org.apache.bcel.generic.LCMP obj)
visitLCMP
in interface org.apache.bcel.generic.Visitor
visitLCMP
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitD2F(org.apache.bcel.generic.D2F obj)
visitD2F
in interface org.apache.bcel.generic.Visitor
visitD2F
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitD2I(org.apache.bcel.generic.D2I obj)
visitD2I
in interface org.apache.bcel.generic.Visitor
visitD2I
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitD2L(org.apache.bcel.generic.D2L obj)
visitD2L
in interface org.apache.bcel.generic.Visitor
visitD2L
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitF2D(org.apache.bcel.generic.F2D obj)
visitF2D
in interface org.apache.bcel.generic.Visitor
visitF2D
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitF2I(org.apache.bcel.generic.F2I obj)
visitF2I
in interface org.apache.bcel.generic.Visitor
visitF2I
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitF2L(org.apache.bcel.generic.F2L obj)
visitF2L
in interface org.apache.bcel.generic.Visitor
visitF2L
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitI2B(org.apache.bcel.generic.I2B obj)
visitI2B
in interface org.apache.bcel.generic.Visitor
visitI2B
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitI2C(org.apache.bcel.generic.I2C obj)
visitI2C
in interface org.apache.bcel.generic.Visitor
visitI2C
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitI2D(org.apache.bcel.generic.I2D obj)
visitI2D
in interface org.apache.bcel.generic.Visitor
visitI2D
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitI2F(org.apache.bcel.generic.I2F obj)
visitI2F
in interface org.apache.bcel.generic.Visitor
visitI2F
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitI2L(org.apache.bcel.generic.I2L obj)
visitI2L
in interface org.apache.bcel.generic.Visitor
visitI2L
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitI2S(org.apache.bcel.generic.I2S obj)
visitI2S
in interface org.apache.bcel.generic.Visitor
visitI2S
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitL2D(org.apache.bcel.generic.L2D obj)
visitL2D
in interface org.apache.bcel.generic.Visitor
visitL2D
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitL2F(org.apache.bcel.generic.L2F obj)
visitL2F
in interface org.apache.bcel.generic.Visitor
visitL2F
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitL2I(org.apache.bcel.generic.L2I obj)
visitL2I
in interface org.apache.bcel.generic.Visitor
visitL2I
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitIAND(org.apache.bcel.generic.IAND obj)
visitIAND
in interface org.apache.bcel.generic.Visitor
visitIAND
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitLAND(org.apache.bcel.generic.LAND obj)
visitLAND
in interface org.apache.bcel.generic.Visitor
visitLAND
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitIOR(org.apache.bcel.generic.IOR obj)
visitIOR
in interface org.apache.bcel.generic.Visitor
visitIOR
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitLOR(org.apache.bcel.generic.LOR obj)
visitLOR
in interface org.apache.bcel.generic.Visitor
visitLOR
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitIXOR(org.apache.bcel.generic.IXOR obj)
visitIXOR
in interface org.apache.bcel.generic.Visitor
visitIXOR
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitLXOR(org.apache.bcel.generic.LXOR obj)
visitLXOR
in interface org.apache.bcel.generic.Visitor
visitLXOR
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitISHR(org.apache.bcel.generic.ISHR obj)
visitISHR
in interface org.apache.bcel.generic.Visitor
visitISHR
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitIUSHR(org.apache.bcel.generic.IUSHR obj)
visitIUSHR
in interface org.apache.bcel.generic.Visitor
visitIUSHR
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitLSHR(org.apache.bcel.generic.LSHR obj)
visitLSHR
in interface org.apache.bcel.generic.Visitor
visitLSHR
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitLUSHR(org.apache.bcel.generic.LUSHR obj)
visitLUSHR
in interface org.apache.bcel.generic.Visitor
visitLUSHR
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitISHL(org.apache.bcel.generic.ISHL obj)
visitISHL
in interface org.apache.bcel.generic.Visitor
visitISHL
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitLSHL(org.apache.bcel.generic.LSHL obj)
visitLSHL
in interface org.apache.bcel.generic.Visitor
visitLSHL
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitDADD(org.apache.bcel.generic.DADD obj)
visitDADD
in interface org.apache.bcel.generic.Visitor
visitDADD
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitFADD(org.apache.bcel.generic.FADD obj)
visitFADD
in interface org.apache.bcel.generic.Visitor
visitFADD
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitIADD(org.apache.bcel.generic.IADD obj)
visitIADD
in interface org.apache.bcel.generic.Visitor
visitIADD
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitLADD(org.apache.bcel.generic.LADD obj)
visitLADD
in interface org.apache.bcel.generic.Visitor
visitLADD
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitDSUB(org.apache.bcel.generic.DSUB obj)
visitDSUB
in interface org.apache.bcel.generic.Visitor
visitDSUB
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitDUP(org.apache.bcel.generic.DUP obj)
visitDUP
in interface org.apache.bcel.generic.Visitor
visitDUP
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitFSUB(org.apache.bcel.generic.FSUB obj)
visitFSUB
in interface org.apache.bcel.generic.Visitor
visitFSUB
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitISUB(org.apache.bcel.generic.ISUB obj)
visitISUB
in interface org.apache.bcel.generic.Visitor
visitISUB
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitLSUB(org.apache.bcel.generic.LSUB obj)
visitLSUB
in interface org.apache.bcel.generic.Visitor
visitLSUB
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitDMUL(org.apache.bcel.generic.DMUL obj)
visitDMUL
in interface org.apache.bcel.generic.Visitor
visitDMUL
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitFMUL(org.apache.bcel.generic.FMUL obj)
visitFMUL
in interface org.apache.bcel.generic.Visitor
visitFMUL
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitIMUL(org.apache.bcel.generic.IMUL obj)
visitIMUL
in interface org.apache.bcel.generic.Visitor
visitIMUL
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitLMUL(org.apache.bcel.generic.LMUL obj)
visitLMUL
in interface org.apache.bcel.generic.Visitor
visitLMUL
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitDDIV(org.apache.bcel.generic.DDIV obj)
visitDDIV
in interface org.apache.bcel.generic.Visitor
visitDDIV
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitFDIV(org.apache.bcel.generic.FDIV obj)
visitFDIV
in interface org.apache.bcel.generic.Visitor
visitFDIV
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitIDIV(org.apache.bcel.generic.IDIV obj)
visitIDIV
in interface org.apache.bcel.generic.Visitor
visitIDIV
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitLDIV(org.apache.bcel.generic.LDIV obj)
visitLDIV
in interface org.apache.bcel.generic.Visitor
visitLDIV
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitDREM(org.apache.bcel.generic.DREM obj)
visitDREM
in interface org.apache.bcel.generic.Visitor
visitDREM
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitFREM(org.apache.bcel.generic.FREM obj)
visitFREM
in interface org.apache.bcel.generic.Visitor
visitFREM
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitIREM(org.apache.bcel.generic.IREM obj)
visitIREM
in interface org.apache.bcel.generic.Visitor
visitIREM
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitLREM(org.apache.bcel.generic.LREM obj)
visitLREM
in interface org.apache.bcel.generic.Visitor
visitLREM
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitIINC(org.apache.bcel.generic.IINC obj)
visitIINC
in interface org.apache.bcel.generic.Visitor
visitIINC
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitDNEG(org.apache.bcel.generic.DNEG obj)
visitDNEG
in interface org.apache.bcel.generic.Visitor
visitDNEG
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitFNEG(org.apache.bcel.generic.FNEG obj)
visitFNEG
in interface org.apache.bcel.generic.Visitor
visitFNEG
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitINEG(org.apache.bcel.generic.INEG obj)
visitINEG
in interface org.apache.bcel.generic.Visitor
visitINEG
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitLNEG(org.apache.bcel.generic.LNEG obj)
visitLNEG
in interface org.apache.bcel.generic.Visitor
visitLNEG
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitARRAYLENGTH(org.apache.bcel.generic.ARRAYLENGTH obj)
visitARRAYLENGTH
in interface org.apache.bcel.generic.Visitor
visitARRAYLENGTH
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitAALOAD(org.apache.bcel.generic.AALOAD obj)
visitAALOAD
in interface org.apache.bcel.generic.Visitor
visitAALOAD
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitBALOAD(org.apache.bcel.generic.BALOAD obj)
visitBALOAD
in interface org.apache.bcel.generic.Visitor
visitBALOAD
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitCALOAD(org.apache.bcel.generic.CALOAD obj)
visitCALOAD
in interface org.apache.bcel.generic.Visitor
visitCALOAD
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitDALOAD(org.apache.bcel.generic.DALOAD obj)
visitDALOAD
in interface org.apache.bcel.generic.Visitor
visitDALOAD
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitFALOAD(org.apache.bcel.generic.FALOAD obj)
visitFALOAD
in interface org.apache.bcel.generic.Visitor
visitFALOAD
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitIALOAD(org.apache.bcel.generic.IALOAD obj)
visitIALOAD
in interface org.apache.bcel.generic.Visitor
visitIALOAD
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitLALOAD(org.apache.bcel.generic.LALOAD obj)
visitLALOAD
in interface org.apache.bcel.generic.Visitor
visitLALOAD
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitSALOAD(org.apache.bcel.generic.SALOAD obj)
visitSALOAD
in interface org.apache.bcel.generic.Visitor
visitSALOAD
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitNEW(org.apache.bcel.generic.NEW obj)
visitNEW
in interface org.apache.bcel.generic.Visitor
visitNEW
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitNEWARRAY(org.apache.bcel.generic.NEWARRAY obj)
visitNEWARRAY
in interface org.apache.bcel.generic.Visitor
visitNEWARRAY
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitANEWARRAY(org.apache.bcel.generic.ANEWARRAY obj)
visitANEWARRAY
in interface org.apache.bcel.generic.Visitor
visitANEWARRAY
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitMULTIANEWARRAY(org.apache.bcel.generic.MULTIANEWARRAY obj)
visitMULTIANEWARRAY
in interface org.apache.bcel.generic.Visitor
visitMULTIANEWARRAY
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitJSR(org.apache.bcel.generic.JSR obj)
visitJSR
in interface org.apache.bcel.generic.Visitor
visitJSR
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitJSR_W(org.apache.bcel.generic.JSR_W obj)
visitJSR_W
in interface org.apache.bcel.generic.Visitor
visitJSR_W
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitRET(org.apache.bcel.generic.RET obj)
visitRET
in interface org.apache.bcel.generic.Visitor
visitRET
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitIFEQ(org.apache.bcel.generic.IFEQ obj)
visitIFEQ
in interface org.apache.bcel.generic.Visitor
visitIFEQ
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitIFGT(org.apache.bcel.generic.IFGT obj)
visitIFGT
in interface org.apache.bcel.generic.Visitor
visitIFGT
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitIFLE(org.apache.bcel.generic.IFLE obj)
visitIFLE
in interface org.apache.bcel.generic.Visitor
visitIFLE
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public void visitIFNE(org.apache.bcel.generic.IFNE obj)
visitIFNE
in interface org.apache.bcel.generic.Visitor
visitIFNE
in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
public boolean isImpliedByGenericTypes(org.apache.bcel.generic.ReferenceType t)
FindBugs™ is licenced under the LGPL. Copyright © 2006 University of Maryland.