X-Git-Url: http://plrg.eecs.uci.edu/git/?p=IRC.git;a=blobdiff_plain;f=Robust%2Fsrc%2FAnalysis%2FSSJava%2FSSJavaAnalysis.java;h=da84de637057414a997d1f109248415384feb6e9;hp=a39fd0142a42f01162ec4df89b08115d6e4d210c;hb=9d767c1f5cef3242ff67473368e5ad327c340bfa;hpb=8d750e51bc5fa6b54ed568859dd8a6a25ad9e4c4 diff --git a/Robust/src/Analysis/SSJava/SSJavaAnalysis.java b/Robust/src/Analysis/SSJava/SSJavaAnalysis.java index a39fd014..da84de63 100644 --- a/Robust/src/Analysis/SSJava/SSJavaAnalysis.java +++ b/Robust/src/Analysis/SSJava/SSJavaAnalysis.java @@ -96,7 +96,7 @@ public class SSJavaAnalysis { // keep the field ownership from the linear type checking Hashtable> mapMethodToOwnedFieldSet; - + Set sameHeightWriteFlatNodeSet; CallGraph callgraph; @@ -110,6 +110,8 @@ public class SSJavaAnalysis { private LinkedList sortedDescriptors; + private Map> mapSharedLocToDescSet; + public SSJavaAnalysis(State state, TypeUtil tu, BuildFlat bf, CallGraph callgraph) { this.state = state; this.tu = tu; @@ -129,6 +131,7 @@ public class SSJavaAnalysis { this.mapDescriptorToSetDependents = new Hashtable>(); this.sortedDescriptors = new LinkedList(); this.md2pcLoc = new HashMap(); + this.mapSharedLocToDescSet = new HashMap>(); } public void doCheck() { @@ -166,6 +169,17 @@ public class SSJavaAnalysis { return (LinkedList) sortedDescriptors.clone(); } + public void addSharedDesc(Location loc, Descriptor fd) { + if (!mapSharedLocToDescSet.containsKey(loc)) { + mapSharedLocToDescSet.put(loc, new HashSet()); + } + mapSharedLocToDescSet.get(loc).add(fd); + } + + public Set getSharedDescSet(Location loc) { + return mapSharedLocToDescSet.get(loc); + } + private void inference() { LocationInference inferEngine = new LocationInference(this, state); inferEngine.inference();