diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/Util.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/Util.java index b5d5bc995..f7a52bd5e 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/Util.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/Util.java @@ -47,7 +47,7 @@ public class Util { for (Iterator x = CG.iterator(); x.hasNext();) { CGNode N = (CGNode) x.next(); Trace.println("\nIR of node " + N); - IR ir = ((SSAContextInterpreter) CG.getInterpreter(N)).getIR(N, builder.getWarnings()); + IR ir = N.getIR(builder.getWarnings()); if (ir != null) { Trace.println(ir); } else { diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/impl/CAstControlFlowRecorder.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/impl/CAstControlFlowRecorder.java index cd9702e4d..5aa53c141 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/impl/CAstControlFlowRecorder.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/impl/CAstControlFlowRecorder.java @@ -10,10 +10,17 @@ *****************************************************************************/ package com.ibm.wala.cast.tree.impl; -import com.ibm.wala.cast.tree.*; -import com.ibm.wala.util.debug.Assertions; +import java.util.Collection; +import java.util.Collections; +import java.util.Iterator; +import java.util.LinkedHashMap; +import java.util.LinkedHashSet; +import java.util.Map; +import java.util.Set; -import java.util.*; +import com.ibm.wala.cast.tree.CAstControlFlowMap; +import com.ibm.wala.cast.tree.CAstNode; +import com.ibm.wala.cast.tree.CAstSourcePositionMap; /** * An implementation of a CAstControlFlowMap that is designed to be used by diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/impl/CAstRewriter.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/impl/CAstRewriter.java index 7caeb44af..648d27a87 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/impl/CAstRewriter.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/impl/CAstRewriter.java @@ -23,8 +23,7 @@ public abstract class CAstRewriter { protected final RewriteContext rootContext; - public CAstRewriter(CAst Ast, boolean recursive, RewriteContext rootContext) - { + public CAstRewriter(CAst Ast, boolean recursive, RewriteContext rootContext) { this.Ast = Ast; this.recursive = recursive; this.rootContext = rootContext; @@ -40,24 +39,19 @@ public abstract class CAstRewriter { CAstNodeTypeMap newTypes(); - Map> newChildren(); + Map> newChildren(); } protected abstract CAstNode copyNodes(CAstNode root, RewriteContext context, Map nodeMap); - protected CAstNode flowOutTo(Map nodeMap, - CAstNode oldSource, - Object label, - CAstNode oldTarget, - CAstControlFlowMap orig, - CAstSourcePositionMap src) - { + protected CAstNode flowOutTo(Map nodeMap, CAstNode oldSource, Object label, CAstNode oldTarget, + CAstControlFlowMap orig, CAstSourcePositionMap src) { return oldTarget; } private CAstControlFlowMap copyFlow(Map nodeMap, CAstControlFlowMap orig, CAstSourcePositionMap src) { - Set mappedOutsideNodes = new HashSet(1); + Set mappedOutsideNodes = new HashSet(1); Collection oldSources = orig.getMappedNodes(); CAstControlFlowRecorder newMap = new CAstControlFlowRecorder(src); for (Iterator NS = nodeMap.keySet().iterator(); NS.hasNext();) { @@ -70,15 +64,12 @@ public abstract class CAstRewriter { if (nodeMap.containsKey(oldTarget)) { newMap.add(newNode, nodeMap.get(oldTarget), null); } else { - CAstNode tgt = flowOutTo(nodeMap, old, null, oldTarget, orig, src); + CAstNode tgt = flowOutTo(nodeMap, old, null, oldTarget, orig, src); newMap.add(newNode, tgt, null); - if (tgt != CAstControlFlowMap.EXCEPTION_TO_EXIT - && - !mappedOutsideNodes.contains(tgt)) - { - mappedOutsideNodes.add(tgt); - newMap.map(tgt, tgt); - } + if (tgt != CAstControlFlowMap.EXCEPTION_TO_EXIT && !mappedOutsideNodes.contains(tgt)) { + mappedOutsideNodes.add(tgt); + newMap.map(tgt, tgt); + } } } @@ -88,15 +79,12 @@ public abstract class CAstRewriter { if (nodeMap.containsKey(oldTarget)) { newMap.add(newNode, nodeMap.get(oldTarget), label); } else { - CAstNode tgt = flowOutTo(nodeMap, old, null, oldTarget, orig, src); + CAstNode tgt = flowOutTo(nodeMap, old, null, oldTarget, orig, src); newMap.add(newNode, tgt, label); - if (tgt != CAstControlFlowMap.EXCEPTION_TO_EXIT - && - !mappedOutsideNodes.contains(tgt)) - { - mappedOutsideNodes.add(tgt); - newMap.map(tgt, tgt); - } + if (tgt != CAstControlFlowMap.EXCEPTION_TO_EXIT && !mappedOutsideNodes.contains(tgt)) { + mappedOutsideNodes.add(tgt); + newMap.map(tgt, tgt); + } } } } @@ -142,8 +130,8 @@ public abstract class CAstRewriter { } } - private Map> copyChildren(Map nodeMap, Map> children) { - final Map> newChildren = new LinkedHashMap>(); + private Map> copyChildren(Map nodeMap, Map> children) { + final Map> newChildren = new LinkedHashMap>(); for (Iterator NS = nodeMap.entrySet().iterator(); NS.hasNext();) { Map.Entry entry = (Map.Entry) NS.next(); @@ -153,20 +141,20 @@ public abstract class CAstRewriter { if (children.containsKey(oldNode)) { Set newEntities = new LinkedHashSet(); newChildren.put(newNode, newEntities); - for (Iterator oldEntities = ((Collection) children.get(oldNode)).iterator(); oldEntities.hasNext();) { + for (Iterator oldEntities = children.get(oldNode).iterator(); oldEntities.hasNext();) { CAstEntity oldE = (CAstEntity) oldEntities.next(); newEntities.add(recursive ? rewrite(oldE) : oldE); } } } - for (Iterator>> keys = children.entrySet().iterator(); keys.hasNext();) { - Map.Entry> entry = keys.next(); + for (Iterator>> keys = children.entrySet().iterator(); keys.hasNext();) { + Map.Entry> entry = keys.next(); CAstNode key = entry.getKey(); if (!(key instanceof CAstNode)) { Set newEntities = new LinkedHashSet(); newChildren.put(key, newEntities); - for (Iterator oldEntities = ((Collection) entry.getValue()).iterator(); oldEntities.hasNext();) { + for (Iterator oldEntities = entry.getValue().iterator(); oldEntities.hasNext();) { CAstEntity oldE = (CAstEntity) oldEntities.next(); newEntities.add(recursive ? rewrite(oldE) : oldE); } @@ -177,7 +165,7 @@ public abstract class CAstRewriter { } public Rewrite rewrite(CAstNode root, final CAstControlFlowMap cfg, final CAstSourcePositionMap pos, final CAstNodeTypeMap types, - final Map> children) { + final Map> children) { final Map nodes = new HashMap(); final CAstNode newRoot = copyNodes(root, rootContext, nodes); return new Rewrite() { @@ -187,7 +175,7 @@ public abstract class CAstRewriter { private CAstNodeTypeMap theTypes = null; - private Map> theChildren = null; + private Map> theChildren = null; public CAstNode newRoot() { return newRoot; @@ -195,7 +183,7 @@ public abstract class CAstRewriter { public CAstControlFlowMap newCfg() { if (theCfg == null) - theCfg = copyFlow(nodes, cfg, newPos()); + theCfg = copyFlow(nodes, cfg, newPos()); return theCfg; } @@ -211,7 +199,7 @@ public abstract class CAstRewriter { return theTypes; } - public Map> newChildren() { + public Map> newChildren() { if (theChildren == null) theChildren = copyChildren(nodes, children); return theChildren; @@ -262,13 +250,13 @@ public abstract class CAstRewriter { } else if (recursive) { Map> children = root.getAllScopedEntities(); - final Map> newChildren = new LinkedHashMap>(); - for (Iterator>> keys = children.entrySet().iterator(); keys.hasNext();) { - Map.Entry> entry = keys.next(); + final Map> newChildren = new LinkedHashMap>(); + for (Iterator>> keys = children.entrySet().iterator(); keys.hasNext();) { + Map.Entry> entry = keys.next(); CAstNode key = entry.getKey(); Set newValues = new LinkedHashSet(); newChildren.put(key, newValues); - for (Iterator es = ((Collection) entry.getValue()).iterator(); es.hasNext();) { + for (Iterator es = entry.getValue().iterator(); es.hasNext();) { newValues.add(rewrite((CAstEntity) es.next())); } } @@ -280,13 +268,13 @@ public abstract class CAstRewriter { public Iterator getScopedEntities(CAstNode construct) { if (newChildren.containsKey(construct)) { - return ((Collection) newChildren.get(construct)).iterator(); + return newChildren.get(construct).iterator(); } else { return EmptyIterator.instance(); } } - public Map> getAllScopedEntities() { + public Map> getAllScopedEntities() { return newChildren; } };