From: yeom Date: Wed, 17 Mar 2010 18:29:36 +0000 (+0000) Subject: changes for proper handling field. X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=895be5373dacd04e839184eb308d7301d8e72789;p=IRC.git changes for proper handling field. --- 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