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_INTEGRITY
Fields 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
ConstructorDescriptionBetterCFGBuilder2
(MethodDescriptor descriptor, org.apache.bcel.generic.MethodGen methodGen) Constructor. -
Method Summary
Modifier and TypeMethodDescriptionvoid
build()
Build the CFG.getCFG()
Get the CFG built by this object.int
void
inline
(edu.umd.cs.findbugs.ba.BetterCFGBuilder2.Context context) Inline a subroutine into a calling context.static void
Test driver.void
optimize
(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:CFGBuilder
Build the CFG.- Specified by:
build
in interfaceCFGBuilder
- Throws:
CFGBuilderException
-
getCFG
Description copied from interface:CFGBuilder
Get the CFG built by this object. Assumes that the build() method has already been called.- Specified by:
getCFG
in 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
-