lattice.removeRedundantEdges();
LocationInference.numLocationsSInfer += lattice.getKeySet().size();
+ System.out.println(desc + " numPaths=" + lattice.countPaths());
if (desc instanceof ClassDescriptor) {
// field lattice
HierarchyGraph simpleHierarchyGraph = getHierarchyGraph(desc).clone();
simpleHierarchyGraph.setName(desc + "_SIMPLE");
simpleHierarchyGraph.removeRedundantEdges();
+ // simpleHierarchyGraph.removeIsolatedNodes();
mapDescriptorToSimpleHierarchyGraph.put(desc, simpleHierarchyGraph);
}
}
// if the srcNode is started with the global descriptor
// need to set as a skeleton node
if (!hasGlobalAccess && srcNode.getDescTuple().startsWith(GLOBALDESC)) {
+ System.out.println("SRCNODE=" + srcNode);
hasGlobalAccess = true;
}
// set hasGloabalAccess true in the method summary.
if (hasGlobalAccess) {
getMethodSummary(md).setHasGlobalAccess();
+ methodGraph.getHNode(GLOBALDESC).setSkeleton(true);
}
- methodGraph.getHNode(GLOBALDESC).setSkeleton(true);
if (ssjava.getMethodContainingSSJavaLoop().equals(md)) {
// if the current method contains the event loop