public class DefinitelyNullSetAnalysis extends ForwardDataflowAnalysis<DefinitelyNullSet>
| Constructor and Description |
|---|
DefinitelyNullSetAnalysis(DepthFirstSearch dfs,
ValueNumberDataflow vnaDataflow,
CompactLocationNumbering compactLocationNumbering)
Constructor.
|
| Modifier and Type | Method and Description |
|---|---|
void |
copy(DefinitelyNullSet source,
DefinitelyNullSet dest)
Copy dataflow facts.
|
DefinitelyNullSet |
createFact()
Create empty (uninitialized) dataflow facts for one program point.
|
void |
edgeTransfer(Edge edge,
DefinitelyNullSet fact)
Edge transfer function.
|
void |
initEntryFact(DefinitelyNullSet result)
Initialize the "entry" fact for the graph.
|
boolean |
isFactValid(DefinitelyNullSet fact)
Determine whether the given fact is valid
(neither top nor bottom).
|
boolean |
isTop(DefinitelyNullSet fact)
Is the given fact the top value.
|
void |
makeFactTop(DefinitelyNullSet fact)
Make given fact the top value.
|
void |
meetInto(DefinitelyNullSet fact,
Edge edge,
DefinitelyNullSet result)
Meet a dataflow fact associated with an incoming edge into another fact.
|
boolean |
same(DefinitelyNullSet fact1,
DefinitelyNullSet fact2)
Are given dataflow facts the same?
|
void |
transferInstruction(org.apache.bcel.generic.InstructionHandle handle,
BasicBlock basicBlock,
DefinitelyNullSet fact)
Transfer function for a single instruction.
|
getBlockOrder, getDepthFirstSearch, isForwardsgetFactAfterLocation, getFactAtLocation, transferfactToString, finishIteration, getFactOnEdge, getLastUpdateTimestamp, getResultFact, getStartFact, resultFactIterator, setLastUpdateTimestamp, startIterationpublic DefinitelyNullSetAnalysis(DepthFirstSearch dfs, ValueNumberDataflow vnaDataflow, CompactLocationNumbering compactLocationNumbering)
dfs - DepthFirstSearch for the methodvnaDataflow - value number dataflow for the methodcompactLocationNumbering - CompactLocationNumbering for the methodpublic boolean isFactValid(DefinitelyNullSet fact)
AbstractDataflowAnalysisisFactValid in class AbstractDataflowAnalysis<DefinitelyNullSet>public void transferInstruction(org.apache.bcel.generic.InstructionHandle handle,
BasicBlock basicBlock,
DefinitelyNullSet fact)
throws DataflowAnalysisException
AbstractDataflowAnalysistransferInstruction in class AbstractDataflowAnalysis<DefinitelyNullSet>handle - the instructionbasicBlock - the BasicBlock containing the instruction; needed to disambiguate
instructions in inlined JSR subroutinesfact - which should be modified based on the instructionDataflowAnalysisExceptionpublic void edgeTransfer(Edge edge, DefinitelyNullSet fact) throws DataflowAnalysisException
DataflowAnalysisA do-nothing implementation is legal, and appropriate for analyses where branches are not significant.
edgeTransfer in interface DataflowAnalysis<DefinitelyNullSet>edgeTransfer in class BasicAbstractDataflowAnalysis<DefinitelyNullSet>edge - the Edgefact - a dataflow factDataflowAnalysisExceptionpublic void copy(DefinitelyNullSet source, DefinitelyNullSet dest)
DataflowAnalysispublic DefinitelyNullSet createFact()
DataflowAnalysispublic void initEntryFact(DefinitelyNullSet result) throws DataflowAnalysisException
DataflowAnalysisDataflowAnalysisExceptionpublic void makeFactTop(DefinitelyNullSet fact)
DataflowAnalysispublic boolean isTop(DefinitelyNullSet fact)
DataflowAnalysispublic void meetInto(DefinitelyNullSet fact, Edge edge, DefinitelyNullSet result) throws DataflowAnalysisException
DataflowAnalysisfact - the predecessor fact (incoming edge)edge - the edge from the predecessorresult - the result factDataflowAnalysisExceptionpublic boolean same(DefinitelyNullSet fact1, DefinitelyNullSet fact2)
DataflowAnalysisFindBugs™ is licenced under the LGPL. Copyright © 2006 University of Maryland.