a bug fix...
[IRC.git] / Robust / src / Analysis / SSJava / LocationInference.java
index b2bd43fcf6f85a4a21564989a9766738ed61a875..b15742f55874221a52703f4ddf5653a6cb7b39fa 100644 (file)
@@ -2556,12 +2556,10 @@ public class LocationInference {
       // HierarchyGraph simpleHierarchyGraph = getSimpleHierarchyGraph(key);
       HierarchyGraph scHierarchyGraph = getSkeletonCombinationHierarchyGraph(key);
       if (key instanceof ClassDescriptor) {
-        // writeInferredLatticeDotFile((ClassDescriptor) key, scHierarchyGraph, simpleLattice,
-        // "_SIMPLE");
+        writeInferredLatticeDotFile((ClassDescriptor) key, simpleLattice, "_SIMPLE");
       } else if (key instanceof MethodDescriptor) {
         MethodDescriptor md = (MethodDescriptor) key;
-        // writeInferredLatticeDotFile(md.getClassDesc(), md, scHierarchyGraph, simpleLattice,
-        // "_SIMPLE");
+        writeInferredLatticeDotFile(md.getClassDesc(), md, simpleLattice, "_SIMPLE");
       }
 
       LocationSummary ls = getLocationSummary(key);
@@ -2609,11 +2607,23 @@ public class LocationInference {
 
     addMapDescToSimpleLattice(desc, simpleLattice);
 
+    if (desc instanceof ClassDescriptor) {
+      writeInferredLatticeDotFile((ClassDescriptor) desc, null, simpleLattice, "_SC");
+    } else {
+      MethodDescriptor md = (MethodDescriptor) desc;
+      writeInferredLatticeDotFile(md.getClassDesc(), md, simpleLattice, "_SC");
+    }
+
     HierarchyGraph simpleHierarchyGraph = getSimpleHierarchyGraph(desc);
+
     // System.out.println("\n## insertIntermediateNodesToStraightLine:"
     // + simpleHierarchyGraph.getName());
     SSJavaLattice<String> lattice =
         buildLattice.insertIntermediateNodesToStraightLine(desc, simpleLattice);
+
+    if (lattice == null) {
+      return;
+    }
     lattice.removeRedundantEdges();
 
     LocationInference.numLocationsSInfer += lattice.getKeySet().size();