edu.umd.cs.findbugs.ba
Class PruneInfeasibleExceptionEdges2

java.lang.Object
  extended by edu.umd.cs.findbugs.ba.PruneInfeasibleExceptionEdges2
All Implemented Interfaces:
EdgeTypes

public class PruneInfeasibleExceptionEdges2
extends java.lang.Object
implements EdgeTypes

Remove obviously infeasible exception edgges, and mark all exception edges of a CFG to indicate

  1. if they can throw a checked exception, and
  2. if they throw "explicit" exceptions (thrown via ATHROW or from a called method which explicitly declares thrown exceptions)

The goal of this class is to accomplish the same thing as PruneInfeasibleExceptionEdges, but without requiring accurate exception sets to be constructed (which is very slow).

Author:
David Hovemeyer

Field Summary
 
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
PruneInfeasibleExceptionEdges2(CFG cfg, org.apache.bcel.generic.MethodGen methodGen, TypeDataflow typeDataflow)
          Constructor.
 
Method Summary
 void execute()
          Prune the CFG.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PruneInfeasibleExceptionEdges2

public PruneInfeasibleExceptionEdges2(CFG cfg,
                                      org.apache.bcel.generic.MethodGen methodGen,
                                      TypeDataflow typeDataflow)
Constructor.

Parameters:
cfg - the CFG to prune
methodGen - MethodGen for the method
typeDataflow - TypeDataflow for the method
Method Detail

execute

public void execute()
Prune the CFG.