@@ -104,58 +104,58 @@ private static org.jgrapht.Graph<Pair<String, Callable>, AbstractGraphEdge> buil
104
104
// We'll use forward and backward search on the DFS to identify which CFG nodes
105
105
// are dominant
106
106
// 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
+ // }
123
123
124
124
// 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
+ // }));
159
159
160
160
callGraph .getEntrypointNodes ()
161
161
.forEach (p -> {
0 commit comments