bug fixes
authorbdemsky <bdemsky>
Wed, 23 Mar 2011 01:31:38 +0000 (01:31 +0000)
committerbdemsky <bdemsky>
Wed, 23 Mar 2011 01:31:38 +0000 (01:31 +0000)
Robust/src/Analysis/Disjoint/Canonical.java
Robust/src/Analysis/Disjoint/EffectsAnalysis.java
Robust/src/Analysis/Pointer/Edge.java
Robust/src/Analysis/Pointer/Pointer.java

index 60e9871158f5aeb4079d74984e57642a0f5e42e9..a4a07b662c7bc06b9792ee25ac9ae0938106e850 100644 (file)
@@ -1500,7 +1500,7 @@ abstract public class Canonical {
       // unaffected, and if the taint has a non-empty predicate
       // it is out of context so it should go through, too
       if( t.getSESE() == null ||
-          seseSet.contains(t)) {
+          !seseSet.contains(t)) {
         out.taints.add( t );
       }
     }
index 59a8ae97e06235efe158f57aef8ec52320131e88..900a338ab69fff1722ad0acd14daebbf0cfd500e 100644 (file)
@@ -192,7 +192,7 @@ public class EffectsAnalysis {
     for (Edge edge:dstedges) {
       TaintSet taintSet = edge.getTaints();
       Alloc affectedAlloc = edge.getDst().getAllocSite();
-      Effect effect = new Effect(affectedAlloc, Effect.write, fld);       
+      Effect effect = new Effect(affectedAlloc, Effect.write, fld);
       if (taintSet!=null)
        for (Taint taint:taintSet.getTaints()) {
          add(taint, effect, currentProgramPoint );
index a03512ad1dcdf85cedeeccbc2249889bde1900f8..fcdc1217a39479f91a5415f09c81e408eedf2ec1 100644 (file)
@@ -100,8 +100,9 @@ public class Edge {
   }
 
   public void taintModify(Set<FlatSESEEnterNode> seseSet) {
-    if (taints!=null)
+    if (taints!=null) {
       taints=Canonical.removeSESETaints(taints, seseSet);
+    }
   }
 
   public TaintSet getTaints() {
index e85a6387c9c86dfc7faaedc6d2e694e8bfc031bb..b44671a0334d3a904795a3e0e3866ca01a65cdaf 100644 (file)
@@ -171,7 +171,7 @@ public class Pointer implements HeapAnalysis{
     }
 
     //DEBUG
-    if (true) {
+    if (false) {
       int debugindex=0;
       for(Map.Entry<BBlock, Graph> e:bbgraphMap.entrySet()) {
        Graph g=e.getValue();
@@ -1071,7 +1071,7 @@ public class Pointer implements HeapAnalysis{
        boolean addedge=false;
        Edge edgetoadd=null;
        if (e.statuspredicate==Edge.NEW) {
-         edgetoadd=e;
+         edgetoadd=e.copy();//we need our own copy to modify below
        } else {
          Edge origEdgeKey=e.makeStatus(allocFactory);
          if (oldgraph.nodeMap.containsKey(origEdgeKey.src)&&
@@ -1283,7 +1283,6 @@ public class Pointer implements HeapAnalysis{
       graph.oldNodes.put(node, ispresent);
     }
   }
-
   Delta processSetFieldElementNode(FlatNode node, Delta delta, Graph graph) {
     TempDescriptor src;
     FieldDescriptor fd;