5 public class TempObject {
7 private Vector pointerparams;
8 private Vector primitiveparams;
9 private MethodDescriptor method;
11 private Hashtable paramtotemp;
12 private Hashtable temptostore;
15 public TempObject(ParamsObject p, MethodDescriptor md, int tag) {
17 pointerparams=new Vector();
18 primitiveparams=new Vector();
19 paramtotemp=new Hashtable();
20 temptostore=new Hashtable();
26 public void addPtr(TempDescriptor t) {
27 if (!params.containsTemp(t)&&!pointerparams.contains(t)) {
28 Position p=new Position(true, pointerparams.size());
30 paramtotemp.put(new Integer(count++), t);
35 public void addPrim(TempDescriptor t) {
36 if (!params.containsTemp(t)&&!primitiveparams.contains(t)) {
37 Position p=new Position(false, primitiveparams.size());
38 primitiveparams.add(t);
39 paramtotemp.put(new Integer(count++), t);
44 public boolean isLocalPtr(TempDescriptor t) {
45 if (!params.containsTemp(t)) {
46 Position p=(Position)temptostore.get(t);
52 public boolean isLocalPrim(TempDescriptor t) {
53 if (!params.containsTemp(t)) {
54 Position p=(Position)temptostore.get(t);
60 public boolean isParamPtr(TempDescriptor t) {
61 return params.isParamPtr(t);
64 public boolean isParamPrim(TempDescriptor t) {
65 return params.isParamPrim(t);
69 return pointerparams.size();
72 TempDescriptor getPointer(int i) {
73 return (TempDescriptor) pointerparams.get(i);
77 return primitiveparams.size();
80 TempDescriptor getPrimitive(int i) {
81 return (TempDescriptor) primitiveparams.get(i);
84 static class Position {
87 Position(boolean inStruct, int position) {
88 this.inStruct=inStruct;
89 this.position=position;