public class StackDepthAnalysis extends ForwardDataflowAnalysis<StackDepth>
Dataflow,
DataflowAnalysis| Constructor and Description |
|---|
StackDepthAnalysis(org.apache.bcel.generic.ConstantPoolGen cpg,
DepthFirstSearch dfs)
Constructor.
|
| Modifier and Type | Method and Description |
|---|---|
void |
copy(StackDepth source,
StackDepth dest)
Copy dataflow facts.
|
StackDepth |
createFact()
Create empty (uninitialized) dataflow facts for one program point.
|
void |
initEntryFact(StackDepth entryFact)
Initialize the "entry" fact for the graph.
|
boolean |
isFactValid(StackDepth fact)
Determine whether the given fact is valid (neither top nor
bottom).
|
boolean |
isTop(StackDepth fact)
Is the given fact the top value.
|
void |
makeFactTop(StackDepth fact)
Make given fact the top value.
|
void |
meetInto(StackDepth fact,
Edge edge,
StackDepth result)
Meet a dataflow fact associated with an incoming edge into another fact.
|
boolean |
same(StackDepth fact1,
StackDepth fact2)
Are given dataflow facts the same?
|
void |
transferInstruction(org.apache.bcel.generic.InstructionHandle handle,
BasicBlock basicBlock,
StackDepth fact)
Transfer function for a single instruction.
|
getBlockOrder, getDepthFirstSearch, isForwardsgetFactAfterLocation, getFactAtLocation, transferedgeTransfer, factToString, finishIteration, getFactOnEdge, getLastUpdateTimestamp, getResultFact, getStartFact, resultFactIterator, setLastUpdateTimestamp, startIterationpublic static final int TOP
public static final int BOTTOM
public StackDepthAnalysis(org.apache.bcel.generic.ConstantPoolGen cpg,
DepthFirstSearch dfs)
cpg - the ConstantPoolGen of the method whose CFG we're performing
the analysis ondfs - DepthFirstSearch of the method's CFGpublic StackDepth createFact()
DataflowAnalysispublic void makeFactTop(StackDepth fact)
DataflowAnalysispublic boolean isTop(StackDepth fact)
DataflowAnalysispublic boolean isFactValid(StackDepth fact)
AbstractDataflowAnalysisisFactValid in class AbstractDataflowAnalysis<StackDepth>public void copy(StackDepth source, StackDepth dest)
DataflowAnalysispublic void initEntryFact(StackDepth entryFact)
DataflowAnalysispublic boolean same(StackDepth fact1, StackDepth fact2)
DataflowAnalysispublic void transferInstruction(org.apache.bcel.generic.InstructionHandle handle,
BasicBlock basicBlock,
StackDepth fact)
throws DataflowAnalysisException
AbstractDataflowAnalysistransferInstruction in class AbstractDataflowAnalysis<StackDepth>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 meetInto(StackDepth fact, Edge edge, StackDepth result)
DataflowAnalysisfact - the predecessor fact (incoming edge)edge - the edge from the predecessorresult - the result factFindBugs™ is licenced under the LGPL. Copyright © 2006 University of Maryland.