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,org.apache.bcel.generic.VisitorSupportsInvokeDynamic
public class IsNullValueFrameModelingVisitor
extends AbstractFrameModelingVisitor<IsNullValue,IsNullValueFrame>
-
Field Summary
Fields inherited from class edu.umd.cs.findbugs.ba.AbstractFrameModelingVisitor
cpg -
Constructor Summary
ConstructorsConstructorDescriptionIsNullValueFrameModelingVisitor(org.apache.bcel.generic.ConstantPoolGen cpg, AssertionMethods assertionMethods, ValueNumberDataflow vnaDataflow, TypeDataflow typeDataflow, boolean trackValueNumbers) -
Method Summary
Modifier and TypeMethodDescriptionvoidanalyzeInstruction(org.apache.bcel.generic.Instruction ins) Analyze the given Instruction.Produce a "default" value.getReturnValueNullness(XMethod calledMethod) intvoidvisitACONST_NULL(org.apache.bcel.generic.ACONST_NULL obj) voidvisitANEWARRAY(org.apache.bcel.generic.ANEWARRAY obj) voidvisitCHECKCAST(org.apache.bcel.generic.CHECKCAST obj) voidvisitGETFIELD(org.apache.bcel.generic.GETFIELD obj) voidvisitGETSTATIC(org.apache.bcel.generic.GETSTATIC obj) voidvisitINVOKEINTERFACE(org.apache.bcel.generic.INVOKEINTERFACE obj) voidvisitINVOKESPECIAL(org.apache.bcel.generic.INVOKESPECIAL obj) voidvisitINVOKESTATIC(org.apache.bcel.generic.INVOKESTATIC obj) voidvisitINVOKEVIRTUAL(org.apache.bcel.generic.INVOKEVIRTUAL obj) voidvisitLDC(org.apache.bcel.generic.LDC obj) voidvisitLDC2_W(org.apache.bcel.generic.LDC2_W obj) voidvisitMULTIANEWARRAY(org.apache.bcel.generic.MULTIANEWARRAY obj) voidvisitNEW(org.apache.bcel.generic.NEW obj) voidvisitNEWARRAY(org.apache.bcel.generic.NEWARRAY obj) voidvisitPUTFIELD(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:AbstractFrameModelingVisitorAnalyze the given Instruction.- Overrides:
analyzeInstructionin 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:AbstractFrameModelingVisitorProduce a "default" value. This is what is pushed onto the stack by the handleNormalInstruction() method for instructions which produce stack values.- Specified by:
getDefaultValuein classAbstractFrameModelingVisitor<IsNullValue,IsNullValueFrame>
-
getReturnValueNullness
-
visitPUTFIELD
public void visitPUTFIELD(org.apache.bcel.generic.PUTFIELD obj) - Specified by:
visitPUTFIELDin interfaceorg.apache.bcel.generic.Visitor- Overrides:
visitPUTFIELDin classAbstractFrameModelingVisitor<IsNullValue,IsNullValueFrame>
-
visitGETFIELD
public void visitGETFIELD(org.apache.bcel.generic.GETFIELD obj) - Specified by:
visitGETFIELDin interfaceorg.apache.bcel.generic.Visitor- Overrides:
visitGETFIELDin classAbstractFrameModelingVisitor<IsNullValue,IsNullValueFrame>
-
visitGETSTATIC
public void visitGETSTATIC(org.apache.bcel.generic.GETSTATIC obj) - Specified by:
visitGETSTATICin interfaceorg.apache.bcel.generic.Visitor- Overrides:
visitGETSTATICin classAbstractFrameModelingVisitor<IsNullValue,IsNullValueFrame>
-
visitACONST_NULL
public void visitACONST_NULL(org.apache.bcel.generic.ACONST_NULL obj) - Specified by:
visitACONST_NULLin interfaceorg.apache.bcel.generic.Visitor- Overrides:
visitACONST_NULLin classAbstractFrameModelingVisitor<IsNullValue,IsNullValueFrame>
-
visitNEW
public void visitNEW(org.apache.bcel.generic.NEW obj) - Specified by:
visitNEWin interfaceorg.apache.bcel.generic.Visitor- Overrides:
visitNEWin classAbstractFrameModelingVisitor<IsNullValue,IsNullValueFrame>
-
visitNEWARRAY
public void visitNEWARRAY(org.apache.bcel.generic.NEWARRAY obj) - Specified by:
visitNEWARRAYin interfaceorg.apache.bcel.generic.Visitor- Overrides:
visitNEWARRAYin classAbstractFrameModelingVisitor<IsNullValue,IsNullValueFrame>
-
visitANEWARRAY
public void visitANEWARRAY(org.apache.bcel.generic.ANEWARRAY obj) - Specified by:
visitANEWARRAYin interfaceorg.apache.bcel.generic.Visitor- Overrides:
visitANEWARRAYin classAbstractFrameModelingVisitor<IsNullValue,IsNullValueFrame>
-
visitMULTIANEWARRAY
public void visitMULTIANEWARRAY(org.apache.bcel.generic.MULTIANEWARRAY obj) - Specified by:
visitMULTIANEWARRAYin interfaceorg.apache.bcel.generic.Visitor- Overrides:
visitMULTIANEWARRAYin classAbstractFrameModelingVisitor<IsNullValue,IsNullValueFrame>
-
visitLDC
public void visitLDC(org.apache.bcel.generic.LDC obj) - Specified by:
visitLDCin interfaceorg.apache.bcel.generic.Visitor- Overrides:
visitLDCin classAbstractFrameModelingVisitor<IsNullValue,IsNullValueFrame>
-
visitLDC2_W
public void visitLDC2_W(org.apache.bcel.generic.LDC2_W obj) - Specified by:
visitLDC2_Win interfaceorg.apache.bcel.generic.Visitor- Overrides:
visitLDC2_Win classAbstractFrameModelingVisitor<IsNullValue,IsNullValueFrame>
-
visitCHECKCAST
public void visitCHECKCAST(org.apache.bcel.generic.CHECKCAST obj) - Specified by:
visitCHECKCASTin interfaceorg.apache.bcel.generic.Visitor- Overrides:
visitCHECKCASTin classAbstractFrameModelingVisitor<IsNullValue,IsNullValueFrame>
-
visitINVOKESTATIC
public void visitINVOKESTATIC(org.apache.bcel.generic.INVOKESTATIC obj) - Specified by:
visitINVOKESTATICin interfaceorg.apache.bcel.generic.Visitor- Overrides:
visitINVOKESTATICin classAbstractFrameModelingVisitor<IsNullValue,IsNullValueFrame>
-
visitINVOKESPECIAL
public void visitINVOKESPECIAL(org.apache.bcel.generic.INVOKESPECIAL obj) - Specified by:
visitINVOKESPECIALin interfaceorg.apache.bcel.generic.Visitor- Overrides:
visitINVOKESPECIALin classAbstractFrameModelingVisitor<IsNullValue,IsNullValueFrame>
-
visitINVOKEINTERFACE
public void visitINVOKEINTERFACE(org.apache.bcel.generic.INVOKEINTERFACE obj) - Specified by:
visitINVOKEINTERFACEin interfaceorg.apache.bcel.generic.Visitor- Overrides:
visitINVOKEINTERFACEin classAbstractFrameModelingVisitor<IsNullValue,IsNullValueFrame>
-
visitINVOKEVIRTUAL
public void visitINVOKEVIRTUAL(org.apache.bcel.generic.INVOKEVIRTUAL obj) - Specified by:
visitINVOKEVIRTUALin interfaceorg.apache.bcel.generic.Visitor- Overrides:
visitINVOKEVIRTUALin classAbstractFrameModelingVisitor<IsNullValue,IsNullValueFrame>
-