OwnershipHeapRegionNode ohrnSrc = null;
Iterator srcRegionsItr = srcln.iteratorToReachableRegions();
while( srcRegionsItr.hasNext() ) {
- ohrnSrc = (OwnershipHeapRegionNode)srcRegionsItr.next();
-
+ ohrnSrc = (OwnershipHeapRegionNode)srcRegionsItr.next();
ohrn.addReachableRegion( ohrnSrc );
}
}
BufferedWriter bw = new BufferedWriter( new FileWriter( graphName+".dot" ) );
bw.write( "digraph "+graphName+" {\n" );
+ HashSet<OwnershipHeapRegionNode> visited = new HashSet<OwnershipHeapRegionNode>();
+
Set s = heapRoots.entrySet();
Iterator i = s.iterator();
while( i.hasNext() ) {
Map.Entry me = (Map.Entry) i.next();
OwnershipHeapRegionNode ohrn = (OwnershipHeapRegionNode) me.getValue();
- traverseHeapNodesTop( VISIT_OHRN_WRITE_FULL, ohrn, bw, null );
+ traverseHeapNodes( VISIT_OHRN_WRITE_FULL, ohrn, bw, null, visited );
}
s = td2ln.entrySet();
BufferedWriter bw = new BufferedWriter( new FileWriter( graphName+".dot" ) );
bw.write( "graph "+graphName+" {\n" );
+ HashSet<OwnershipHeapRegionNode> visited = new HashSet<OwnershipHeapRegionNode>();
+
// find linked regions
for( int i = 0; i < analysisRegionLabels.size(); ++i ) {
TempDescriptor td = analysisRegionLabels.get( i );
while( heapRegionsItr.hasNext() ) {
ohrn = (OwnershipHeapRegionNode)heapRegionsItr.next();
- traverseHeapNodesTop( VISIT_OHRN_WRITE_CONDENSED, ohrn, bw, td );
+ traverseHeapNodes( VISIT_OHRN_WRITE_CONDENSED, ohrn, bw, td, visited );
}
}
bw.close();
}
+ /*
protected void traverseHeapNodesTop( int mode,
OwnershipHeapRegionNode ohrn,
BufferedWriter bw,
HashSet<OwnershipHeapRegionNode> visited = new HashSet<OwnershipHeapRegionNode>();
traverseHeapNodes( mode, ohrn, bw, td, visited );
}
+ */
protected void traverseHeapNodes( int mode,
OwnershipHeapRegionNode ohrn,