projects
/
IRC.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
ab4b0fe
)
more null region fixes, but I think method results can still map outgoing edges to...
author
jjenista
<jjenista>
Tue, 15 Sep 2009 21:15:46 +0000
(21:15 +0000)
committer
jjenista
<jjenista>
Tue, 15 Sep 2009 21:15:46 +0000
(21:15 +0000)
Robust/src/Analysis/OwnershipAnalysis/OwnershipGraph.java
patch
|
blob
|
history
diff --git
a/Robust/src/Analysis/OwnershipAnalysis/OwnershipGraph.java
b/Robust/src/Analysis/OwnershipAnalysis/OwnershipGraph.java
index b1a3ef7eb79da93d827daea8d8dec0767382ea68..23a22b7b23a5c21a5fb53686853cff4386f0f604 100644
(file)
--- a/
Robust/src/Analysis/OwnershipAnalysis/OwnershipGraph.java
+++ b/
Robust/src/Analysis/OwnershipAnalysis/OwnershipGraph.java
@@
-375,14
+375,20
@@
public class OwnershipGraph {
Iterator<ReferenceEdge> itrYhrn = lnY.iteratorToReferencees();
while( itrYhrn.hasNext() ) {
Iterator<ReferenceEdge> itrYhrn = lnY.iteratorToReferencees();
while( itrYhrn.hasNext() ) {
- ReferenceEdge edgeY = itrYhrn.next();
- HeapRegionNode hrnY = edgeY.getDst();
+ ReferenceEdge
edgeY = itrYhrn.next();
+ HeapRegionNode
hrnY = edgeY.getDst();
ReachabilitySet betaY = edgeY.getBeta();
ReachabilitySet betaY = edgeY.getBeta();
+ // skip the null region, load statement is not
+ // meaningful for this region
+ if( hrnY == hrnNull ) {
+ continue;
+ }
+
Iterator<ReferenceEdge> itrHrnFhrn = hrnY.iteratorToReferencees();
while( itrHrnFhrn.hasNext() ) {
Iterator<ReferenceEdge> itrHrnFhrn = hrnY.iteratorToReferencees();
while( itrHrnFhrn.hasNext() ) {
- ReferenceEdge edgeHrn = itrHrnFhrn.next();
- HeapRegionNode hrnHrn = edgeHrn.getDst();
+ ReferenceEdge
edgeHrn = itrHrnFhrn.next();
+ HeapRegionNode
hrnHrn = edgeHrn.getDst();
ReachabilitySet betaHrn = edgeHrn.getBeta();
if( edgeHrn.getType() == null ||
ReachabilitySet betaHrn = edgeHrn.getBeta();
if( edgeHrn.getType() == null ||
@@
-421,6
+427,11
@@
public class OwnershipGraph {
ReferenceEdge edgeX = itrXhrn.next();
HeapRegionNode hrnX = edgeX.getDst();
ReferenceEdge edgeX = itrXhrn.next();
HeapRegionNode hrnX = edgeX.getDst();
+ // if we are looking at the null region, skip
+ if( hrnX == hrnNull ) {
+ continue;
+ }
+
// we can do a strong update here if one of two cases holds
if( f != null &&
f != OwnershipAnalysis.getArrayField( f.getType() ) &&
// we can do a strong update here if one of two cases holds
if( f != null &&
f != OwnershipAnalysis.getArrayField( f.getType() ) &&
@@
-440,6
+451,11
@@
public class OwnershipGraph {
HeapRegionNode hrnX = edgeX.getDst();
ReachabilitySet betaX = edgeX.getBeta();
HeapRegionNode hrnX = edgeX.getDst();
ReachabilitySet betaX = edgeX.getBeta();
+ // if we are looking at the null region, skip
+ if( hrnX == hrnNull ) {
+ continue;
+ }
+
ReachabilitySet R = hrnX.getAlpha().intersection(edgeX.getBeta() );
Iterator<ReferenceEdge> itrYhrn = lnY.iteratorToReferencees();
ReachabilitySet R = hrnX.getAlpha().intersection(edgeX.getBeta() );
Iterator<ReferenceEdge> itrYhrn = lnY.iteratorToReferencees();
@@
-494,6
+510,11
@@
public class OwnershipGraph {
ReferenceEdge edgeX = itrXhrn.next();
HeapRegionNode hrnX = edgeX.getDst();
ReferenceEdge edgeX = itrXhrn.next();
HeapRegionNode hrnX = edgeX.getDst();
+ // if we are looking at the null region, skip
+ if( hrnX == hrnNull ) {
+ continue;
+ }
+
Iterator<ReferenceEdge> itrYhrn = lnY.iteratorToReferencees();
while( itrYhrn.hasNext() ) {
ReferenceEdge edgeY = itrYhrn.next();
Iterator<ReferenceEdge> itrYhrn = lnY.iteratorToReferencees();
while( itrYhrn.hasNext() ) {
ReferenceEdge edgeY = itrYhrn.next();