From 895be5373dacd04e839184eb308d7301d8e72789 Mon Sep 17 00:00:00 2001 From: yeom Date: Wed, 17 Mar 2010 18:29:36 +0000 Subject: [PATCH] changes for proper handling field. --- Robust/src/Analysis/Disjoint/DisjointAnalysis.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Robust/src/Analysis/Disjoint/DisjointAnalysis.java b/Robust/src/Analysis/Disjoint/DisjointAnalysis.java index acb41070..688d342a 100644 --- a/Robust/src/Analysis/Disjoint/DisjointAnalysis.java +++ b/Robust/src/Analysis/Disjoint/DisjointAnalysis.java @@ -1251,7 +1251,7 @@ private ReachGraph createInitialTaskReachGraph(FlatMethod fm) { for (Iterator it = classDesc.getFields(); it.hasNext();) { FieldDescriptor fd = (FieldDescriptor) it.next(); TypeDescriptor fieldType = fd.getType(); - if (!fieldType.isImmutable()) { + if (!fieldType.isImmutable() || fieldType.isArray()) { HashMap newMap = new HashMap(); newMap.put(hrnNewest, fd); workSet.add(newMap); @@ -1316,7 +1316,8 @@ private ReachGraph createInitialTaskReachGraph(FlatMethod fm) { mapTypeToExistingSummaryNode.put(type, hrnSummary); // set-up a work set for fields of the class - classDesc = type.getClassDesc(); + if(!type.isImmutable()){ + classDesc = type.getClassDesc(); for (Iterator it = classDesc.getFields(); it.hasNext();) { FieldDescriptor typeFieldDesc = (FieldDescriptor) it.next(); TypeDescriptor fieldType = typeFieldDesc.getType(); @@ -1331,6 +1332,7 @@ private ReachGraph createInitialTaskReachGraph(FlatMethod fm) { } } } + } }else{ // if there exists corresponding summary node -- 2.34.1