Package edu.umd.cs.findbugs.ba.npe
Class IsNullValueFrameModelingVisitor
java.lang.Object
edu.umd.cs.findbugs.ba.AbstractFrameModelingVisitor<IsNullValue,IsNullValueFrame>
edu.umd.cs.findbugs.ba.npe.IsNullValueFrameModelingVisitor
- All Implemented Interfaces:
org.apache.bcel.generic.Visitor
public class IsNullValueFrameModelingVisitor
extends AbstractFrameModelingVisitor<IsNullValue,IsNullValueFrame>
-
Field Summary
Fields inherited from class edu.umd.cs.findbugs.ba.AbstractFrameModelingVisitor
cpg
-
Constructor Summary
ConstructorDescriptionIsNullValueFrameModelingVisitor
(org.apache.bcel.generic.ConstantPoolGen cpg, AssertionMethods assertionMethods, ValueNumberDataflow vnaDataflow, TypeDataflow typeDataflow, boolean trackValueNumbers) -
Method Summary
Modifier and TypeMethodDescriptionvoid
analyzeInstruction
(org.apache.bcel.generic.Instruction ins) Analyze the given Instruction.Produce a "default" value.getReturnValueNullness
(XMethod calledMethod) int
void
visitACONST_NULL
(org.apache.bcel.generic.ACONST_NULL obj) void
visitANEWARRAY
(org.apache.bcel.generic.ANEWARRAY obj) void
visitCHECKCAST
(org.apache.bcel.generic.CHECKCAST obj) void
visitGETFIELD
(org.apache.bcel.generic.GETFIELD obj) void
visitGETSTATIC
(org.apache.bcel.generic.GETSTATIC 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
visitLDC
(org.apache.bcel.generic.LDC obj) void
visitLDC2_W
(org.apache.bcel.generic.LDC2_W 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
visitPUTFIELD
(org.apache.bcel.generic.PUTFIELD obj) Methods inherited from class edu.umd.cs.findbugs.ba.AbstractFrameModelingVisitor
getCPG, getFrame, getLocation, getNumWordsConsumed, getNumWordsProduced, handleLoadInstruction, handleNormalInstruction, handleStoreInstruction, modelInstruction, modelNormalInstruction, setFrameAndLocation, visitAALOAD, visitAASTORE, visitAllocationInstruction, visitALOAD, visitARETURN, visitArithmeticInstruction, visitArrayInstruction, visitARRAYLENGTH, visitASTORE, visitATHROW, visitBALOAD, visitBASTORE, visitBIPUSH, visitBranchInstruction, visitBREAKPOINT, visitCALOAD, visitCASTORE, visitConstantPushInstruction, visitConversionInstruction, visitConversionInstruction2, visitCPInstruction, visitD2F, visitD2I, visitD2L, visitDADD, visitDALOAD, visitDASTORE, visitDCMPG, visitDCMPL, visitDCONST, visitDDIV, visitDLOAD, visitDMUL, visitDNEG, visitDREM, visitDRETURN, visitDSTORE, visitDSUB, visitDUP, visitDUP_X1, visitDUP_X2, visitDUP2, visitDUP2_X1, visitDUP2_X2, visitExceptionThrower, visitF2D, visitF2I, visitF2L, visitFADD, visitFALOAD, visitFASTORE, visitFCMPG, visitFCMPL, visitFCONST, visitFDIV, visitFieldInstruction, visitFieldOrMethod, visitFLOAD, visitFMUL, visitFNEG, visitFREM, visitFRETURN, visitFSTORE, visitFSUB, visitGOTO, visitGOTO_W, visitGotoInstruction, visitI2B, visitI2C, visitI2D, visitI2F, visitI2L, visitI2S, visitIADD, visitIALOAD, visitIAND, visitIASTORE, visitICONST, visitIDIV, visitIF_ACMPEQ, visitIF_ACMPNE, visitIF_ICMPEQ, visitIF_ICMPGE, visitIF_ICMPGT, visitIF_ICMPLE, visitIF_ICMPLT, visitIF_ICMPNE, visitIFEQ, visitIFGE, visitIFGT, visitIfInstruction, visitIFLE, visitIFLT, visitIFNE, visitIFNONNULL, visitIFNULL, visitIINC, visitILOAD, visitIMPDEP1, visitIMPDEP2, visitIMUL, visitINEG, visitINSTANCEOF, visitINVOKEDYNAMIC, visitInvokeInstruction, visitIOR, visitIREM, visitIRETURN, visitISHL, visitISHR, visitISTORE, visitISUB, visitIUSHR, visitIXOR, visitJSR, visitJSR_W, visitJsrInstruction, visitL2D, visitL2F, visitL2I, visitLADD, visitLALOAD, visitLAND, visitLASTORE, visitLCMP, visitLCONST, visitLDIV, visitLLOAD, visitLMUL, visitLNEG, visitLoadClass, visitLoadInstruction, visitLocalVariableInstruction, visitLOOKUPSWITCH, visitLOR, visitLREM, visitLRETURN, visitLSHL, visitLSHR, visitLSTORE, visitLSUB, visitLUSHR, visitLXOR, visitMONITORENTER, visitMONITOREXIT, visitNONNULL2Z, visitNOP, visitNULL2Z, visitPOP, visitPOP2, visitPopInstruction, visitPushInstruction, visitPUTSTATIC, visitRET, visitRETURN, visitReturnInstruction, visitSALOAD, visitSASTORE, visitSelect, visitSIPUSH, visitStackConsumer, visitStackInstruction, visitStackProducer, visitStoreInstruction, visitSWAP, visitTABLESWITCH, visitTypedInstruction, visitUnconditionalBranch, visitVariableLengthInstruction
-
Constructor Details
-
IsNullValueFrameModelingVisitor
public IsNullValueFrameModelingVisitor(org.apache.bcel.generic.ConstantPoolGen cpg, AssertionMethods assertionMethods, ValueNumberDataflow vnaDataflow, TypeDataflow typeDataflow, boolean trackValueNumbers)
-
-
Method Details
-
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<IsNullValue,
IsNullValueFrame> - 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
-
getSlotContainingNewNullValue
public int getSlotContainingNewNullValue()- Returns:
- Returns the slotContainingNewNullValue; or -1 if no new null value was produced
-
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<IsNullValue,
IsNullValueFrame>
-
getReturnValueNullness
-
visitPUTFIELD
public void visitPUTFIELD(org.apache.bcel.generic.PUTFIELD obj) - Specified by:
visitPUTFIELD
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitPUTFIELD
in classAbstractFrameModelingVisitor<IsNullValue,
IsNullValueFrame>
-
visitGETFIELD
public void visitGETFIELD(org.apache.bcel.generic.GETFIELD obj) - Specified by:
visitGETFIELD
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitGETFIELD
in classAbstractFrameModelingVisitor<IsNullValue,
IsNullValueFrame>
-
visitGETSTATIC
public void visitGETSTATIC(org.apache.bcel.generic.GETSTATIC obj) - Specified by:
visitGETSTATIC
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitGETSTATIC
in classAbstractFrameModelingVisitor<IsNullValue,
IsNullValueFrame>
-
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<IsNullValue,
IsNullValueFrame>
-
visitNEW
public void visitNEW(org.apache.bcel.generic.NEW obj) - Specified by:
visitNEW
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitNEW
in classAbstractFrameModelingVisitor<IsNullValue,
IsNullValueFrame>
-
visitNEWARRAY
public void visitNEWARRAY(org.apache.bcel.generic.NEWARRAY obj) - Specified by:
visitNEWARRAY
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitNEWARRAY
in classAbstractFrameModelingVisitor<IsNullValue,
IsNullValueFrame>
-
visitANEWARRAY
public void visitANEWARRAY(org.apache.bcel.generic.ANEWARRAY obj) - Specified by:
visitANEWARRAY
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitANEWARRAY
in classAbstractFrameModelingVisitor<IsNullValue,
IsNullValueFrame>
-
visitMULTIANEWARRAY
public void visitMULTIANEWARRAY(org.apache.bcel.generic.MULTIANEWARRAY obj) - Specified by:
visitMULTIANEWARRAY
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitMULTIANEWARRAY
in classAbstractFrameModelingVisitor<IsNullValue,
IsNullValueFrame>
-
visitLDC
public void visitLDC(org.apache.bcel.generic.LDC obj) - Specified by:
visitLDC
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitLDC
in classAbstractFrameModelingVisitor<IsNullValue,
IsNullValueFrame>
-
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<IsNullValue,
IsNullValueFrame>
-
visitCHECKCAST
public void visitCHECKCAST(org.apache.bcel.generic.CHECKCAST obj) - Specified by:
visitCHECKCAST
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitCHECKCAST
in classAbstractFrameModelingVisitor<IsNullValue,
IsNullValueFrame>
-
visitINVOKESTATIC
public void visitINVOKESTATIC(org.apache.bcel.generic.INVOKESTATIC obj) - Specified by:
visitINVOKESTATIC
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitINVOKESTATIC
in classAbstractFrameModelingVisitor<IsNullValue,
IsNullValueFrame>
-
visitINVOKESPECIAL
public void visitINVOKESPECIAL(org.apache.bcel.generic.INVOKESPECIAL obj) - Specified by:
visitINVOKESPECIAL
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitINVOKESPECIAL
in classAbstractFrameModelingVisitor<IsNullValue,
IsNullValueFrame>
-
visitINVOKEINTERFACE
public void visitINVOKEINTERFACE(org.apache.bcel.generic.INVOKEINTERFACE obj) - Specified by:
visitINVOKEINTERFACE
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitINVOKEINTERFACE
in classAbstractFrameModelingVisitor<IsNullValue,
IsNullValueFrame>
-
visitINVOKEVIRTUAL
public void visitINVOKEVIRTUAL(org.apache.bcel.generic.INVOKEVIRTUAL obj) - Specified by:
visitINVOKEVIRTUAL
in interfaceorg.apache.bcel.generic.Visitor
- Overrides:
visitINVOKEVIRTUAL
in classAbstractFrameModelingVisitor<IsNullValue,
IsNullValueFrame>
-