From da522dcff3eb2f9704feb5d21ec178ba483210fb Mon Sep 17 00:00:00 2001 From: sjfink Date: Tue, 13 Nov 2007 18:20:54 +0000 Subject: [PATCH] add some comments git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@2007 f5eafffb-2e1d-0410-98e4-8ec43c5233c4 --- com.ibm.wala.core/src/com/ibm/wala/cfg/Util.java | 9 +++++++++ .../ibm/wala/ipa/callgraph/impl/PartialCallGraph.java | 11 +++++++++++ 2 files changed, 20 insertions(+) diff --git a/com.ibm.wala.core/src/com/ibm/wala/cfg/Util.java b/com.ibm.wala.core/src/com/ibm/wala/cfg/Util.java index be58c8023..032931d2a 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/cfg/Util.java +++ b/com.ibm.wala.core/src/com/ibm/wala/cfg/Util.java @@ -16,6 +16,7 @@ import com.ibm.wala.shrikeBT.ConditionalBranchInstruction; import com.ibm.wala.ssa.SSAConditionalBranchInstruction; import com.ibm.wala.ssa.SSAInstruction; import com.ibm.wala.ssa.SSASwitchInstruction; +import com.ibm.wala.ssa.SymbolTable; import com.ibm.wala.util.debug.Assertions; /** @@ -133,6 +134,14 @@ public class Util { return -1; } + /** + * To which {@link IBasicBlock} does control flow from basic block bb, which ends in a + * conditional branch, when the conditional branch operands evaluate to the + * constants c1 and c2, respectively. + * + * Callers must resolve the constant values from the {@link SymbolTable} + * before calling this method. These integers are not value numbers; + */ public static T resolveBranch(ControlFlowGraph G, T bb, int c1, int c2) { SSAConditionalBranchInstruction c = (SSAConditionalBranchInstruction) getLastInstruction(G, bb); switch ((ConditionalBranchInstruction.Operator) c.getOperator()) { diff --git a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/impl/PartialCallGraph.java b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/impl/PartialCallGraph.java index 29b4cee51..6272a24b3 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/impl/PartialCallGraph.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/impl/PartialCallGraph.java @@ -33,6 +33,12 @@ import com.ibm.wala.util.intset.IntSet; import com.ibm.wala.util.intset.IntSetUtil; import com.ibm.wala.util.intset.MutableIntSet; +/** + * a view of a portion of a call graph. + * + * @author Julian Dolby + * + */ public class PartialCallGraph extends DelegatingGraph implements CallGraph { private final CallGraph cg; @@ -55,6 +61,11 @@ public class PartialCallGraph extends DelegatingGraph implements CallGra return new PartialCallGraph(CG, partialRoots, partialGraph); } + /** + * @param CG the original call graph + * @param partialRoots roots of the new, partial graph + * the result contains only nodes reachable from the partialRoots in the original call graph. + */ public static PartialCallGraph make(CallGraph CG, Collection partialRoots) { final Set nodes = DFS.getReachableNodes(CG, partialRoots); Graph partialGraph = GraphSlicer.prune(CG, new Filter() {