Package edu.umd.cs.findbugs.ba.type
Class TypeFrameModelingVisitor
java.lang.Object
edu.umd.cs.findbugs.ba.AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
edu.umd.cs.findbugs.ba.type.TypeFrameModelingVisitor
- All Implemented Interfaces:
Debug
,org.apache.bcel.generic.Visitor
public class TypeFrameModelingVisitor
extends AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
implements Debug
Visitor to model the effects of bytecode instructions on the types of the
values (local and operand stack) in Java stack frames. This visitor does not
verify that the types are sensible for the bytecodes executed. In other
words, this isn't a bytecode verifier, although it wouldn't be too hard to
turn it into something vaguely verifier-like.
- Author:
- David Hovemeyer
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final boolean
protected BitSet
protected org.apache.bcel.classfile.LocalVariableTypeTable
static final Pattern
protected final TypeMerger
Fields inherited from class edu.umd.cs.findbugs.ba.AbstractFrameModelingVisitor
cpg
Fields inherited from interface edu.umd.cs.findbugs.ba.Debug
VERIFY_INTEGRITY
-
Constructor Summary
ConstructorsConstructorDescriptionTypeFrameModelingVisitor
(org.apache.bcel.generic.ConstantPoolGen cpg, TypeMerger typeMerger) Constructor. -
Method Summary
Modifier and TypeMethodDescriptionvoid
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
Produce a "default" value.org.apache.bcel.generic.Type
Get the type of the most recent instanceof instruction modeled.Get the value number of the most recent instanceof instruction modeled.static org.apache.bcel.generic.Type
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
Return whether an instanceof instruction was followed by a branch.static boolean
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
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
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
visitINVOKEDYNAMIC
(org.apache.bcel.generic.INVOKEDYNAMIC 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
(org.apache.bcel.generic.JSR obj) void
visitJSR_W
(org.apache.bcel.generic.JSR_W 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) Methods inherited from class edu.umd.cs.findbugs.ba.AbstractFrameModelingVisitor
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, visitDUP2_X1, visitDUP2_X2, visitExceptionThrower, visitFASTORE, visitFieldInstruction, visitFieldOrMethod, visitFLOAD, visitFRETURN, visitFSTORE, visitGOTO, visitGOTO_W, visitGotoInstruction, visitIASTORE, visitIF_ACMPEQ, visitIF_ACMPNE, visitIF_ICMPEQ, visitIF_ICMPGE, visitIF_ICMPGT, visitIF_ICMPLE, visitIF_ICMPLT, visitIF_ICMPNE, visitIFGE, visitIfInstruction, visitIFLT, visitILOAD, visitIMPDEP1, visitIMPDEP2, 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
-
Field Details
-
typeMerger
-
localTypeTable
protected org.apache.bcel.classfile.LocalVariableTypeTable localTypeTable -
genericLocalVariables
-
DEBUG
public static final boolean DEBUG -
mapSignaturePattern
-
-
Constructor Details
-
TypeFrameModelingVisitor
Constructor.- Parameters:
cpg
- the ConstantPoolGen of the method whose instructions we are examiningtypeMerger
- TODO
-
-
Method Details
-
setValueNumberDataflow
Set ValueNumberDataflow for the method being analyzed. This is optional; if set, we will use the information to more accurately model the effects of instanceof instructions.- Parameters:
valueNumberDataflow
- the ValueNumberDataflow
-
setLocalTypeTable
public void setLocalTypeTable(org.apache.bcel.classfile.LocalVariableTypeTable localTypeTable) -
isInstanceOfFollowedByBranch
public boolean isInstanceOfFollowedByBranch()Return whether an instanceof instruction was followed by a branch. The TypeAnalysis may use this to get more precise types in the resulting frame.- Returns:
- true if an instanceof instruction was followed by a branch, false if not
-
getInstanceOfType
public org.apache.bcel.generic.Type getInstanceOfType()Get the type of the most recent instanceof instruction modeled. The TypeAnalysis may use this to get more precise types in the resulting frame.- Returns:
- the Type checked by the most recent instanceof instruction
-
getInstanceOfValueNumber
Get the value number of the most recent instanceof instruction modeled. The TypeAnalysis may use this to get more precise types in the resulting frame.- Returns:
- the ValueNumber checked by the most recent instanceof instruction
-
setFieldStoreTypeDatabase
Set the field store type database. We can use this to get more accurate types for values loaded from fields.- Parameters:
database
- the FieldStoreTypeDatabase
-
getDefaultValue
public org.apache.bcel.generic.Type getDefaultValue()Description copied from class:AbstractFrameModelingVisitor
Produce a "default" value. This is what is pushed onto the stack by the handleNormalInstruction() method for instructions which produce stack values.- Specified by:
getDefaultValue
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
analyzeInstruction
public void analyzeInstruction(org.apache.bcel.generic.Instruction ins) throws DataflowAnalysisException Description copied from class:AbstractFrameModelingVisitor
Analyze the given Instruction.- Overrides:
analyzeInstruction
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame> - Parameters:
ins
- the Instruction- Throws:
DataflowAnalysisException
- if an error occurs analyzing the instruction; in most cases, this indicates that the bytecode for the method being analyzed is invalid
-
startBasicBlock
public void startBasicBlock()This method must be called at the beginning of modeling a basic block in order to clear information cached for instanceof modeling. -
consumeStack
protected void consumeStack(org.apache.bcel.generic.Instruction ins) Consume stack. This is a convenience method for instructions where the types of popped operands can be ignored. -
pushValue
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. This method ensures that we push two types for each double or long value. -
pushReturnType
protected void pushReturnType(org.apache.bcel.generic.InvokeInstruction ins) Helper for pushing the return type of an invoke instruction. -
modelNormalInstruction
public 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.- Overrides:
modelNormalInstruction
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame> - Parameters:
ins
- the Instruction to modelnumWordsConsumed
- number of stack words consumednumWordsProduced
- number of stack words produced
-
visitATHROW
public void visitATHROW(org.apache.bcel.generic.ATHROW obj) - Specified by:
visitATHROW
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitATHROW
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitACONST_NULL
public void visitACONST_NULL(org.apache.bcel.generic.ACONST_NULL obj) - Specified by:
visitACONST_NULL
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitACONST_NULL
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitDCONST
public void visitDCONST(org.apache.bcel.generic.DCONST obj) - Specified by:
visitDCONST
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitDCONST
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitFCONST
public void visitFCONST(org.apache.bcel.generic.FCONST obj) - Specified by:
visitFCONST
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitFCONST
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitICONST
public void visitICONST(org.apache.bcel.generic.ICONST obj) - Specified by:
visitICONST
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitICONST
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitLCONST
public void visitLCONST(org.apache.bcel.generic.LCONST obj) - Specified by:
visitLCONST
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitLCONST
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitLDC
public void visitLDC(org.apache.bcel.generic.LDC obj) - Specified by:
visitLDC
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitLDC
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitLDC2_W
public void visitLDC2_W(org.apache.bcel.generic.LDC2_W obj) - Specified by:
visitLDC2_W
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitLDC2_W
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitBIPUSH
public void visitBIPUSH(org.apache.bcel.generic.BIPUSH obj) - Specified by:
visitBIPUSH
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitBIPUSH
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitSIPUSH
public void visitSIPUSH(org.apache.bcel.generic.SIPUSH obj) - Specified by:
visitSIPUSH
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitSIPUSH
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitGETSTATIC
public void visitGETSTATIC(org.apache.bcel.generic.GETSTATIC obj) - Specified by:
visitGETSTATIC
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitGETSTATIC
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitGETFIELD
public void visitGETFIELD(org.apache.bcel.generic.GETFIELD obj) - Specified by:
visitGETFIELD
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitGETFIELD
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
modelFieldLoad
public void modelFieldLoad(org.apache.bcel.generic.FieldInstruction obj) -
getType
-
visitINVOKESTATIC
public void visitINVOKESTATIC(org.apache.bcel.generic.INVOKESTATIC obj) - Specified by:
visitINVOKESTATIC
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitINVOKESTATIC
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitINVOKESPECIAL
public void visitINVOKESPECIAL(org.apache.bcel.generic.INVOKESPECIAL obj) - Specified by:
visitINVOKESPECIAL
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitINVOKESPECIAL
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitINVOKEINTERFACE
public void visitINVOKEINTERFACE(org.apache.bcel.generic.INVOKEINTERFACE obj) - Specified by:
visitINVOKEINTERFACE
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitINVOKEINTERFACE
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitINVOKEVIRTUAL
public void visitINVOKEVIRTUAL(org.apache.bcel.generic.INVOKEVIRTUAL obj) - Specified by:
visitINVOKEVIRTUAL
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitINVOKEVIRTUAL
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitINVOKEDYNAMIC
public void visitINVOKEDYNAMIC(org.apache.bcel.generic.INVOKEDYNAMIC obj) - Specified by:
visitINVOKEDYNAMIC
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitINVOKEDYNAMIC
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitInvokeInstructionCommon
public void visitInvokeInstructionCommon(org.apache.bcel.generic.InvokeInstruction obj) -
isStraightGenericMap
-
handleStoreInstruction
public void handleStoreInstruction(org.apache.bcel.generic.StoreInstruction obj) Description copied from class:AbstractFrameModelingVisitor
Handler for all instructions which pop values from the stack and store them in a local variable. Note that two locals are stored into for long and double stores.- Overrides:
handleStoreInstruction
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
handleLoadInstruction
public 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. Note that two locals are loaded for long and double loads.- Overrides:
handleLoadInstruction
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitCHECKCAST
public void visitCHECKCAST(org.apache.bcel.generic.CHECKCAST obj) - Specified by:
visitCHECKCAST
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitCHECKCAST
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitINSTANCEOF
public void visitINSTANCEOF(org.apache.bcel.generic.INSTANCEOF obj) - Specified by:
visitINSTANCEOF
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitINSTANCEOF
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitIFNULL
public void visitIFNULL(org.apache.bcel.generic.IFNULL obj) - Specified by:
visitIFNULL
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitIFNULL
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitIFNONNULL
public void visitIFNONNULL(org.apache.bcel.generic.IFNONNULL obj) - Specified by:
visitIFNONNULL
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitIFNONNULL
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitFCMPL
public void visitFCMPL(org.apache.bcel.generic.FCMPL obj) - Specified by:
visitFCMPL
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitFCMPL
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitFCMPG
public void visitFCMPG(org.apache.bcel.generic.FCMPG obj) - Specified by:
visitFCMPG
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitFCMPG
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitDCMPL
public void visitDCMPL(org.apache.bcel.generic.DCMPL obj) - Specified by:
visitDCMPL
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitDCMPL
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitDCMPG
public void visitDCMPG(org.apache.bcel.generic.DCMPG obj) - Specified by:
visitDCMPG
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitDCMPG
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitLCMP
public void visitLCMP(org.apache.bcel.generic.LCMP obj) - Specified by:
visitLCMP
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitLCMP
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitD2F
public void visitD2F(org.apache.bcel.generic.D2F obj) - Specified by:
visitD2F
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitD2F
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitD2I
public void visitD2I(org.apache.bcel.generic.D2I obj) - Specified by:
visitD2I
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitD2I
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitD2L
public void visitD2L(org.apache.bcel.generic.D2L obj) - Specified by:
visitD2L
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitD2L
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitF2D
public void visitF2D(org.apache.bcel.generic.F2D obj) - Specified by:
visitF2D
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitF2D
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitF2I
public void visitF2I(org.apache.bcel.generic.F2I obj) - Specified by:
visitF2I
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitF2I
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitF2L
public void visitF2L(org.apache.bcel.generic.F2L obj) - Specified by:
visitF2L
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitF2L
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitI2B
public void visitI2B(org.apache.bcel.generic.I2B obj) - Specified by:
visitI2B
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitI2B
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitI2C
public void visitI2C(org.apache.bcel.generic.I2C obj) - Specified by:
visitI2C
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitI2C
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitI2D
public void visitI2D(org.apache.bcel.generic.I2D obj) - Specified by:
visitI2D
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitI2D
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitI2F
public void visitI2F(org.apache.bcel.generic.I2F obj) - Specified by:
visitI2F
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitI2F
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitI2L
public void visitI2L(org.apache.bcel.generic.I2L obj) - Specified by:
visitI2L
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitI2L
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitI2S
public void visitI2S(org.apache.bcel.generic.I2S obj) - Specified by:
visitI2S
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitI2S
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitL2D
public void visitL2D(org.apache.bcel.generic.L2D obj) - Specified by:
visitL2D
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitL2D
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitL2F
public void visitL2F(org.apache.bcel.generic.L2F obj) - Specified by:
visitL2F
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitL2F
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitL2I
public void visitL2I(org.apache.bcel.generic.L2I obj) - Specified by:
visitL2I
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitL2I
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitIAND
public void visitIAND(org.apache.bcel.generic.IAND obj) - Specified by:
visitIAND
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitIAND
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitLAND
public void visitLAND(org.apache.bcel.generic.LAND obj) - Specified by:
visitLAND
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitLAND
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitIOR
public void visitIOR(org.apache.bcel.generic.IOR obj) - Specified by:
visitIOR
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitIOR
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitLOR
public void visitLOR(org.apache.bcel.generic.LOR obj) - Specified by:
visitLOR
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitLOR
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitIXOR
public void visitIXOR(org.apache.bcel.generic.IXOR obj) - Specified by:
visitIXOR
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitIXOR
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitLXOR
public void visitLXOR(org.apache.bcel.generic.LXOR obj) - Specified by:
visitLXOR
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitLXOR
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitISHR
public void visitISHR(org.apache.bcel.generic.ISHR obj) - Specified by:
visitISHR
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitISHR
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitIUSHR
public void visitIUSHR(org.apache.bcel.generic.IUSHR obj) - Specified by:
visitIUSHR
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitIUSHR
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitLSHR
public void visitLSHR(org.apache.bcel.generic.LSHR obj) - Specified by:
visitLSHR
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitLSHR
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitLUSHR
public void visitLUSHR(org.apache.bcel.generic.LUSHR obj) - Specified by:
visitLUSHR
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitLUSHR
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitISHL
public void visitISHL(org.apache.bcel.generic.ISHL obj) - Specified by:
visitISHL
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitISHL
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitLSHL
public void visitLSHL(org.apache.bcel.generic.LSHL obj) - Specified by:
visitLSHL
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitLSHL
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitDADD
public void visitDADD(org.apache.bcel.generic.DADD obj) - Specified by:
visitDADD
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitDADD
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitFADD
public void visitFADD(org.apache.bcel.generic.FADD obj) - Specified by:
visitFADD
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitFADD
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitIADD
public void visitIADD(org.apache.bcel.generic.IADD obj) - Specified by:
visitIADD
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitIADD
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitLADD
public void visitLADD(org.apache.bcel.generic.LADD obj) - Specified by:
visitLADD
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitLADD
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitDSUB
public void visitDSUB(org.apache.bcel.generic.DSUB obj) - Specified by:
visitDSUB
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitDSUB
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitDUP
public void visitDUP(org.apache.bcel.generic.DUP obj) - Specified by:
visitDUP
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitDUP
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitFSUB
public void visitFSUB(org.apache.bcel.generic.FSUB obj) - Specified by:
visitFSUB
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitFSUB
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitISUB
public void visitISUB(org.apache.bcel.generic.ISUB obj) - Specified by:
visitISUB
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitISUB
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitLSUB
public void visitLSUB(org.apache.bcel.generic.LSUB obj) - Specified by:
visitLSUB
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitLSUB
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitDMUL
public void visitDMUL(org.apache.bcel.generic.DMUL obj) - Specified by:
visitDMUL
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitDMUL
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitFMUL
public void visitFMUL(org.apache.bcel.generic.FMUL obj) - Specified by:
visitFMUL
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitFMUL
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitIMUL
public void visitIMUL(org.apache.bcel.generic.IMUL obj) - Specified by:
visitIMUL
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitIMUL
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitLMUL
public void visitLMUL(org.apache.bcel.generic.LMUL obj) - Specified by:
visitLMUL
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitLMUL
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitDDIV
public void visitDDIV(org.apache.bcel.generic.DDIV obj) - Specified by:
visitDDIV
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitDDIV
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitFDIV
public void visitFDIV(org.apache.bcel.generic.FDIV obj) - Specified by:
visitFDIV
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitFDIV
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitIDIV
public void visitIDIV(org.apache.bcel.generic.IDIV obj) - Specified by:
visitIDIV
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitIDIV
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitLDIV
public void visitLDIV(org.apache.bcel.generic.LDIV obj) - Specified by:
visitLDIV
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitLDIV
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitDREM
public void visitDREM(org.apache.bcel.generic.DREM obj) - Specified by:
visitDREM
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitDREM
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitFREM
public void visitFREM(org.apache.bcel.generic.FREM obj) - Specified by:
visitFREM
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitFREM
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitIREM
public void visitIREM(org.apache.bcel.generic.IREM obj) - Specified by:
visitIREM
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitIREM
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitLREM
public void visitLREM(org.apache.bcel.generic.LREM obj) - Specified by:
visitLREM
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitLREM
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitIINC
public void visitIINC(org.apache.bcel.generic.IINC obj) - Specified by:
visitIINC
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitIINC
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitDNEG
public void visitDNEG(org.apache.bcel.generic.DNEG obj) - Specified by:
visitDNEG
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitDNEG
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitFNEG
public void visitFNEG(org.apache.bcel.generic.FNEG obj) - Specified by:
visitFNEG
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitFNEG
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitINEG
public void visitINEG(org.apache.bcel.generic.INEG obj) - Specified by:
visitINEG
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitINEG
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitLNEG
public void visitLNEG(org.apache.bcel.generic.LNEG obj) - Specified by:
visitLNEG
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitLNEG
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitARRAYLENGTH
public void visitARRAYLENGTH(org.apache.bcel.generic.ARRAYLENGTH obj) - Specified by:
visitARRAYLENGTH
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitARRAYLENGTH
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitAALOAD
public void visitAALOAD(org.apache.bcel.generic.AALOAD obj) - Specified by:
visitAALOAD
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitAALOAD
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitBALOAD
public void visitBALOAD(org.apache.bcel.generic.BALOAD obj) - Specified by:
visitBALOAD
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitBALOAD
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitCALOAD
public void visitCALOAD(org.apache.bcel.generic.CALOAD obj) - Specified by:
visitCALOAD
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitCALOAD
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitDALOAD
public void visitDALOAD(org.apache.bcel.generic.DALOAD obj) - Specified by:
visitDALOAD
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitDALOAD
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitFALOAD
public void visitFALOAD(org.apache.bcel.generic.FALOAD obj) - Specified by:
visitFALOAD
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitFALOAD
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitIALOAD
public void visitIALOAD(org.apache.bcel.generic.IALOAD obj) - Specified by:
visitIALOAD
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitIALOAD
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitLALOAD
public void visitLALOAD(org.apache.bcel.generic.LALOAD obj) - Specified by:
visitLALOAD
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitLALOAD
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitSALOAD
public void visitSALOAD(org.apache.bcel.generic.SALOAD obj) - Specified by:
visitSALOAD
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitSALOAD
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitNEW
public void visitNEW(org.apache.bcel.generic.NEW obj) - Specified by:
visitNEW
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitNEW
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitNEWARRAY
public void visitNEWARRAY(org.apache.bcel.generic.NEWARRAY obj) - Specified by:
visitNEWARRAY
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitNEWARRAY
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitANEWARRAY
public void visitANEWARRAY(org.apache.bcel.generic.ANEWARRAY obj) - Specified by:
visitANEWARRAY
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitANEWARRAY
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitMULTIANEWARRAY
public void visitMULTIANEWARRAY(org.apache.bcel.generic.MULTIANEWARRAY obj) - Specified by:
visitMULTIANEWARRAY
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitMULTIANEWARRAY
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitJSR
public void visitJSR(org.apache.bcel.generic.JSR obj) - Specified by:
visitJSR
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitJSR
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitJSR_W
public void visitJSR_W(org.apache.bcel.generic.JSR_W obj) - Specified by:
visitJSR_W
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitJSR_W
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitRET
public void visitRET(org.apache.bcel.generic.RET obj) - Specified by:
visitRET
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitRET
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitIFEQ
public void visitIFEQ(org.apache.bcel.generic.IFEQ obj) - Specified by:
visitIFEQ
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitIFEQ
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitIFGT
public void visitIFGT(org.apache.bcel.generic.IFGT obj) - Specified by:
visitIFGT
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitIFGT
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitIFLE
public void visitIFLE(org.apache.bcel.generic.IFLE obj) - Specified by:
visitIFLE
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitIFLE
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
visitIFNE
public void visitIFNE(org.apache.bcel.generic.IFNE obj) - Specified by:
visitIFNE
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitIFNE
in classAbstractFrameModelingVisitor<org.apache.bcel.generic.Type,
TypeFrame>
-
isImpliedByGenericTypes
public boolean isImpliedByGenericTypes(org.apache.bcel.generic.ReferenceType t)
-