From: jjenista Date: Mon, 22 Mar 2010 18:23:44 +0000 (+0000) Subject: bug fixes: if an out-of-context edge in callee has no matching desitination, obviousl... X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=bc5de474cd58506d90feafe12b230f625c093d1b;p=IRC.git bug fixes: if an out-of-context edge in callee has no matching desitination, obviously don't bring it, and don't bother adding shadow into shadow node descriptions, not worth the hassle of changing string descriptions when making shadow nodes on demand --- diff --git a/Robust/src/Analysis/Disjoint/HeapRegionNode.java b/Robust/src/Analysis/Disjoint/HeapRegionNode.java index ec60aaaf..7ca1fdd2 100644 --- a/Robust/src/Analysis/Disjoint/HeapRegionNode.java +++ b/Robust/src/Analysis/Disjoint/HeapRegionNode.java @@ -3,6 +3,7 @@ package Analysis.Disjoint; import IR.*; import IR.Flat.*; import java.util.*; +import java.io.*; public class HeapRegionNode extends RefSrcNode { diff --git a/Robust/src/Analysis/Disjoint/ReachGraph.java b/Robust/src/Analysis/Disjoint/ReachGraph.java index 0b981bce..acb7e8fd 100644 --- a/Robust/src/Analysis/Disjoint/ReachGraph.java +++ b/Robust/src/Analysis/Disjoint/ReachGraph.java @@ -792,9 +792,6 @@ public class ReachGraph { } String strDesc = as.toStringForDOT()+"\\nsummary"; - if( shadow ) { - strDesc += " shadow"; - } hrnSummary = createNewHeapRegionNode( idSummary, // id or null to generate a new one @@ -840,9 +837,6 @@ public class ReachGraph { } String strDesc = as.toStringForDOT()+"\\n"+i+" oldest"; - if( shadow ) { - strDesc += " shadow"; - } hrnIth = createNewHeapRegionNode( idIth, // id or null to generate a new one true, // single object? @@ -2034,9 +2028,15 @@ public class ReachGraph { if( hrnSrcCallee.isOutOfContext() ) { assert !calleeEdges2oocCallerSrcMatches.containsKey( reCallee ); + Set rsnCallers = new HashSet(); + // is the target node in the caller? HeapRegionNode hrnDstCaller = this.id2hrn.get( hrnCallee.getID() ); + if( hrnDstCaller == null ) { + continue; + } + Iterator reDstItr = hrnDstCaller.iteratorToReferencers(); while( reDstItr.hasNext() ) { // the edge and field (either possibly null) must match @@ -3540,7 +3540,6 @@ public class ReachGraph { return true; } - protected boolean areVariableNodesEqual( ReachGraph rg ) {