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<HeapRegionNode, FieldDescriptor> newMap = new HashMap<HeapRegionNode, FieldDescriptor>();
newMap.put(hrnNewest, fd);
workSet.add(newMap);
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();
}
}
}
+ }
}else{
// if there exists corresponding summary node