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 BitSet |
genericLocalVariables |
protected org.apache.bcel.classfile.LocalVariableTypeTable |
localTypeTable |
static Pattern |
mapSignaturePattern |
protected TypeMerger |
typeMerger |
cpgAALOAD, 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, WIDEVERIFY_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, visitVariableLengthInstructionprotected final TypeMerger typeMerger
protected org.apache.bcel.classfile.LocalVariableTypeTable localTypeTable
protected BitSet genericLocalVariables
public static final boolean DEBUG
public static final 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()
AbstractFrameModelingVisitorgetDefaultValue in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>public void analyzeInstruction(org.apache.bcel.generic.Instruction ins)
throws DataflowAnalysisException
AbstractFrameModelingVisitoranalyzeInstruction 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.VisitorvisitATHROW 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.VisitorvisitACONST_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.VisitorvisitDCONST 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.VisitorvisitFCONST 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.VisitorvisitICONST 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.VisitorvisitLCONST 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.VisitorvisitLDC 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.VisitorvisitLDC2_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.VisitorvisitBIPUSH 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.VisitorvisitSIPUSH 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.VisitorvisitGETSTATIC 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.VisitorvisitGETFIELD 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.VisitorvisitINVOKESTATIC 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.VisitorvisitINVOKESPECIAL 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.VisitorvisitINVOKEINTERFACE 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.VisitorvisitINVOKEVIRTUAL 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)
AbstractFrameModelingVisitorhandleStoreInstruction 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.VisitorvisitCHECKCAST 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.VisitorvisitINSTANCEOF 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.VisitorvisitIFNULL 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.VisitorvisitIFNONNULL 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.VisitorvisitFCMPL 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.VisitorvisitFCMPG 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.VisitorvisitDCMPL 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.VisitorvisitDCMPG 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.VisitorvisitLCMP 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.VisitorvisitD2F 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.VisitorvisitD2I 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.VisitorvisitD2L 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.VisitorvisitF2D 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.VisitorvisitF2I 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.VisitorvisitF2L 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.VisitorvisitI2B 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.VisitorvisitI2C 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.VisitorvisitI2D 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.VisitorvisitI2F 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.VisitorvisitI2L 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.VisitorvisitI2S 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.VisitorvisitL2D 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.VisitorvisitL2F 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.VisitorvisitL2I 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.VisitorvisitIAND 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.VisitorvisitLAND 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.VisitorvisitIOR 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.VisitorvisitLOR 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.VisitorvisitIXOR 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.VisitorvisitLXOR 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.VisitorvisitISHR 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.VisitorvisitIUSHR 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.VisitorvisitLSHR 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.VisitorvisitLUSHR 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.VisitorvisitISHL 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.VisitorvisitLSHL 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.VisitorvisitDADD 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.VisitorvisitFADD 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.VisitorvisitIADD 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.VisitorvisitLADD 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.VisitorvisitDSUB 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.VisitorvisitDUP 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.VisitorvisitFSUB 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.VisitorvisitISUB 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.VisitorvisitLSUB 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.VisitorvisitDMUL 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.VisitorvisitFMUL 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.VisitorvisitIMUL 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.VisitorvisitLMUL 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.VisitorvisitDDIV 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.VisitorvisitFDIV 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.VisitorvisitIDIV 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.VisitorvisitLDIV 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.VisitorvisitDREM 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.VisitorvisitFREM 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.VisitorvisitIREM 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.VisitorvisitLREM 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.VisitorvisitIINC 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.VisitorvisitDNEG 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.VisitorvisitFNEG 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.VisitorvisitINEG 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.VisitorvisitLNEG 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.VisitorvisitARRAYLENGTH 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.VisitorvisitAALOAD 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.VisitorvisitBALOAD 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.VisitorvisitCALOAD 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.VisitorvisitDALOAD 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.VisitorvisitFALOAD 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.VisitorvisitIALOAD 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.VisitorvisitLALOAD 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.VisitorvisitSALOAD 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.VisitorvisitNEW 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.VisitorvisitNEWARRAY 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.VisitorvisitANEWARRAY 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.VisitorvisitMULTIANEWARRAY 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.VisitorvisitJSR 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.VisitorvisitJSR_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.VisitorvisitRET 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.VisitorvisitIFEQ 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.VisitorvisitIFGT 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.VisitorvisitIFLE 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.VisitorvisitIFNE in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>public boolean isImpliedByGenericTypes(org.apache.bcel.generic.ReferenceType t)
Copyright © 2003–2015. All rights reserved.