Package edu.umd.cs.findbugs.ba
Class BetterCFGBuilder2
java.lang.Object
edu.umd.cs.findbugs.ba.BetterCFGBuilder2
- All Implemented Interfaces:
CFGBuilder,Debug,EdgeTypes
A CFGBuilder that really tries to construct accurate control flow graphs. The
CFGs it creates have accurate exception edges, and have accurately inlined
JSR subroutines.
- Author:
- David Hovemeyer
- See Also:
-
Field Summary
Fields inherited from interface edu.umd.cs.findbugs.ba.Debug
VERIFY_INTEGRITYFields inherited from interface edu.umd.cs.findbugs.ba.EdgeTypes
BACKEDGE_SOURCE_EDGE, BACKEDGE_TARGET_EDGE, CHECKED_EXCEPTIONS_FLAG, EXIT_EDGE, EXPLICIT_EXCEPTIONS_FLAG, FALL_THROUGH_EDGE, GOTO_EDGE, HANDLED_EXCEPTION_EDGE, IFCMP_EDGE, JSR_EDGE, RET_EDGE, RETURN_EDGE, START_EDGE, SWITCH_DEFAULT_EDGE, SWITCH_EDGE, UNHANDLED_EXCEPTION_EDGE, UNKNOWN_EDGE -
Constructor Summary
ConstructorsConstructorDescriptionBetterCFGBuilder2(MethodDescriptor descriptor, org.apache.bcel.generic.MethodGen methodGen) Constructor. -
Method Summary
Modifier and TypeMethodDescriptionvoidbuild()Build the CFG.getCFG()Get the CFG built by this object.intvoidinline(edu.umd.cs.findbugs.ba.BetterCFGBuilder2.Context context) Inline a subroutine into a calling context.static voidTest driver.voidoptimize(org.apache.bcel.generic.InstructionList instructionList)
-
Constructor Details
-
BetterCFGBuilder2
public BetterCFGBuilder2(@Nonnull MethodDescriptor descriptor, @Nonnull org.apache.bcel.generic.MethodGen methodGen) Constructor.- Parameters:
methodGen- the method to build a CFG for
-
-
Method Details
-
getIndex
-
optimize
public void optimize(org.apache.bcel.generic.InstructionList instructionList) -
build
Description copied from interface:CFGBuilderBuild the CFG.- Specified by:
buildin interfaceCFGBuilder- Throws:
CFGBuilderException
-
getCFG
Description copied from interface:CFGBuilderGet the CFG built by this object. Assumes that the build() method has already been called.- Specified by:
getCFGin interfaceCFGBuilder- Returns:
- the CFG
-
inline
public void inline(edu.umd.cs.findbugs.ba.BetterCFGBuilder2.Context context) throws CFGBuilderException Inline a subroutine into a calling context.- Parameters:
context- the Context- Throws:
CFGBuilderException
-
main
Test driver.- Throws:
Exception
-