@@ -104,58 +104,58 @@ private static org.jgrapht.Graph<Pair<String, Callable>, AbstractGraphEdge> buil
104104 // We'll use forward and backward search on the DFS to identify which CFG nodes
105105 // are dominant
106106 // This is a forward DFS search (or exit time first search)
107- int dfsNumber = 0 ;
108- Map <Statement , Integer > dfsFinish = HashMapFactory .make ();
109- Iterator <Statement > search = DFS .iterateFinishTime (sdg , entryPoints .get ());
110-
111- while (search .hasNext ()) {
112- dfsFinish .put (search .next (), dfsNumber ++);
113- }
114-
115- // This is a reverse DFS search (or entry time first search)
116- int reverseDfsNumber = 0 ;
117- Map <Statement , Integer > dfsStart = HashMapFactory .make ();
118- Iterator <Statement > reverseSearch = DFS .iterateDiscoverTime (sdg , entryPoints .get ());
119-
120- while (reverseSearch .hasNext ()) {
121- dfsStart .put (reverseSearch .next (), reverseDfsNumber ++);
122- }
107+ // int dfsNumber = 0;
108+ // Map<Statement, Integer> dfsFinish = HashMapFactory.make();
109+ // Iterator<Statement> search = DFS.iterateFinishTime(sdg, entryPoints.get());
110+ //
111+ // while (search.hasNext()) {
112+ // dfsFinish.put(search.next(), dfsNumber++);
113+ // }
114+ //
115+ // // This is a reverse DFS search (or entry time first search)
116+ // int reverseDfsNumber = 0;
117+ // Map<Statement, Integer> dfsStart = HashMapFactory.make();
118+ // Iterator<Statement> reverseSearch = DFS.iterateDiscoverTime(sdg, entryPoints.get());
119+ //
120+ // while (reverseSearch.hasNext()) {
121+ // dfsStart.put(reverseSearch.next(), reverseDfsNumber++);
122+ // }
123123
124124 // Populate graph
125- sdg .stream ()
126- .filter (dfsFinish ::containsKey )
127- .sorted (Comparator .comparingInt (dfsFinish ::get ))
128- .forEach (p -> sdg .getSuccNodes (p ).forEachRemaining (s -> {
129- if (dfsFinish .containsKey (s )
130- && dfsStart .get (p ) != null && dfsStart .get (s ) != null
131- && !((dfsStart .get (p ) >= dfsStart .get (s ))
132- && (dfsFinish .get (p ) <= dfsFinish .get (s )))
133- && !p .getNode ().getMethod ().equals (s .getNode ().getMethod ())) {
134-
135- // Add the source nodes to the graph as vertices
136- Pair <String , Callable > source = Optional .ofNullable (getCallableFromSymbolTable (p .getNode ().getMethod ())).orElseGet (() -> createAndPutNewCallableInSymbolTable (p .getNode ().getMethod ()));
137- graph .addVertex (source );
138-
139- // Add the target nodes to the graph as vertices
140- Pair <String , Callable > target = Optional .ofNullable (getCallableFromSymbolTable (s .getNode ().getMethod ())).orElseGet (() -> createAndPutNewCallableInSymbolTable (s .getNode ().getMethod ()));
141- graph .addVertex (target );
142-
143-
144- String edgeType = edgeLabels .apply (p , s );
145- SystemDepEdge graphEdge = new SystemDepEdge (p , s , edgeType );
146- SystemDepEdge cgEdge = (SystemDepEdge ) graph .getEdge (source , target );
147- if (source .getRight () != null && target .getRight () != null ) {
148- if (cgEdge == null || !cgEdge .equals (graphEdge )) {
149- graph .addEdge (
150- source ,
151- target ,
152- graphEdge );
153- } else {
154- graphEdge .incrementWeight ();
155- }
156- }
157- }
158- }));
125+ // sdg.stream()
126+ // .filter(dfsFinish::containsKey)
127+ // .sorted(Comparator.comparingInt(dfsFinish::get))
128+ // .forEach(p -> sdg.getSuccNodes(p).forEachRemaining(s -> {
129+ // if (dfsFinish.containsKey(s)
130+ // && dfsStart.get(p) != null && dfsStart.get(s) != null
131+ // && !((dfsStart.get(p) >= dfsStart.get(s))
132+ // && (dfsFinish.get(p) <= dfsFinish.get(s)))
133+ // && !p.getNode().getMethod().equals(s.getNode().getMethod())) {
134+ //
135+ // // Add the source nodes to the graph as vertices
136+ // Pair<String, Callable> source = Optional.ofNullable(getCallableFromSymbolTable(p.getNode().getMethod())).orElseGet(() -> createAndPutNewCallableInSymbolTable(p.getNode().getMethod()));
137+ // graph.addVertex(source);
138+ //
139+ // // Add the target nodes to the graph as vertices
140+ // Pair<String, Callable> target = Optional.ofNullable(getCallableFromSymbolTable(s.getNode().getMethod())).orElseGet(() -> createAndPutNewCallableInSymbolTable(s.getNode().getMethod()));
141+ // graph.addVertex(target);
142+ //
143+ //
144+ // String edgeType = edgeLabels.apply(p, s);
145+ // SystemDepEdge graphEdge = new SystemDepEdge(p, s, edgeType);
146+ // SystemDepEdge cgEdge = (SystemDepEdge) graph.getEdge(source, target);
147+ // if (source.getRight() != null && target.getRight() != null) {
148+ // if (cgEdge == null || !cgEdge.equals(graphEdge)) {
149+ // graph.addEdge(
150+ // source,
151+ // target,
152+ // graphEdge);
153+ // } else {
154+ // graphEdge.incrementWeight();
155+ // }
156+ // }
157+ // }
158+ // }));
159159
160160 callGraph .getEntrypointNodes ()
161161 .forEach (p -> {
0 commit comments