start of new file
[IRC.git] / Robust / src / IR / Flat / ParamsObject.java
index 9e546fd521d20f38be8ba5fc16d70f5fd7117798..8133a4a9ab20d5b79c98d4325062f300f8a37edf 100644 (file)
@@ -6,9 +6,10 @@ public class ParamsObject {
     private Vector pointerparams;
     private Vector primitiveparams;
     private MethodDescriptor method;
+    private TaskDescriptor task;
     private int tag;
     private Hashtable paramtotemp;
-    protected Hashtable temptostore;
+    private Hashtable temptostore;
     private int count;
 
     public ParamsObject(MethodDescriptor md, int tag) {
@@ -21,6 +22,20 @@ public class ParamsObject {
        count=0;
     }
 
+    public ParamsObject(TaskDescriptor task, int tag) {
+       pointerparams=new Vector();
+       primitiveparams=new Vector();
+       paramtotemp=new Hashtable();
+       temptostore=new Hashtable();
+       this.task=task;
+       this.tag=tag;
+       count=0;
+    }
+
+    public int getUID() {
+       return tag;
+    }
+
     public void addPtr(TempDescriptor t) {
        Position p=new Position(true, pointerparams.size());
        pointerparams.add(t);
@@ -28,6 +43,22 @@ public class ParamsObject {
        temptostore.put(t,p);
     }
 
+    public boolean isParamPtr(TempDescriptor t) {
+       if (containsTemp(t)) {
+           ParamsObject.Position p=(ParamsObject.Position)temptostore.get(t);
+           return p.inStruct;
+       }
+       return false;
+    }
+
+    public boolean isParamPrim(TempDescriptor t) {
+       if (containsTemp(t)) {
+           ParamsObject.Position p=(ParamsObject.Position)temptostore.get(t);
+           return !p.inStruct;
+       }
+       return false;
+    }
+
     public boolean containsTemp(TempDescriptor t) {
        return temptostore.containsKey(t);
     }