bug fix
authorbdemsky <bdemsky>
Fri, 26 Mar 2010 05:34:56 +0000 (05:34 +0000)
committerbdemsky <bdemsky>
Fri, 26 Mar 2010 05:34:56 +0000 (05:34 +0000)
Robust/src/Analysis/Disjoint/DisjointAnalysis.java
Robust/src/Analysis/Disjoint/ReachGraph.java

index da618c502e1699b890628f9e25f3b2bf48f402de..2e26936e915a132dea548df3beb0fa5ccbce7ff6 100644 (file)
@@ -431,6 +431,8 @@ public class DisjointAnalysis {
 
   protected PointerMethod pm;
 
+  protected Hashtable<FlatMethod, ReachGraph> hackmap;
+
 
   // allocate various structures that are not local
   // to a single class method--should be done once
@@ -472,6 +474,8 @@ public class DisjointAnalysis {
     
     mapDescriptorToReachGraph = 
        new Hashtable<Descriptor, ReachGraph>();
+
+    hackmap = new Hashtable<FlatMethod, ReachGraph>();
   }
 
 
@@ -823,7 +827,12 @@ public class DisjointAnalysis {
         // such as, do allocation sites need to be aged?
 
         rg.merge_diffMethodContext( rgContrib );
-      }      
+      }
+      FlatMethod hackfm=(FlatMethod)fn;
+      if (hackmap.containsKey(hackfm)) {
+       rg.merge(hackmap.get(hackfm));
+      }
+      hackmap.put(hackfm, rg);
     } break;
       
     case FKind.FlatOpNode:
index f43d8e350a5c481394ce02e899daf16c1577c8d3..1ce537454ec1b5d67ad4a618db3c5dca561aab20 100644 (file)
@@ -2141,7 +2141,7 @@ public class ReachGraph {
         }        
       }
     }
-
+    /*
     // test param -> HRN edges, also
     for( int i = 0; i < fmCallee.numParameters(); ++i ) {
 
@@ -2191,7 +2191,7 @@ public class ReachGraph {
 
         }        
       }
-    }
+      }*/