edu.umd.cs.findbugs.ba

Class PruneInfeasibleExceptionEdges

public class PruneInfeasibleExceptionEdges extends Object implements EdgeTypes

Prune a CFG to remove infeasible exception edges. In order to determine what kinds of exceptions can be thrown by explicit ATHROW instructions, type analysis must first be performed on the unpruned CFG.

Author: David Hovemeyer

See Also: CFG TypeAnalysis

Constructor Summary
PruneInfeasibleExceptionEdges(CFG cfg, MethodGen methodGen, TypeDataflow typeDataflow)
Constructor.
Method Summary
voidexecute()
Prune infeasible exception edges from the CFG.
booleanwasCFGModified()

Constructor Detail

PruneInfeasibleExceptionEdges

public PruneInfeasibleExceptionEdges(CFG cfg, MethodGen methodGen, TypeDataflow typeDataflow)
Constructor.

Parameters: cfg the CFG to prune methodGen the method typeDataflow initialized TypeDataflow object for the CFG, indicating the types of all stack locations

Method Detail

execute

public void execute()
Prune infeasible exception edges from the CFG. If the method returns normally, then the operation was successful, and the CFG should no longer contain infeasible exception edges. If ClassNotFoundException or DataflowAnalysisException are thrown, then the operation was unsuccessful, but the CFG is still valid because it was not modified. If a runtime exception is thrown, then the CFG may be partially modified and should be considered invalid.

wasCFGModified

public boolean wasCFGModified()

Returns: true if modified

FindBugs™ is licenced under the LGPL. Copyright © 2006 University of Maryland.