numItems--;
return oldvalue;
}
+ ptr=ptr.next;
}
return null;
}
if (ptr.key.equals(key)) {
return ptr.value;
}
+ ptr=ptr.next;
}
return null;
}
if (ptr.key.equals(key)) {
return true;
}
+ ptr=ptr.next;
}
return false;
}
ptr.value=value;
return oldvalue;
}
+ ptr=ptr.next;
}
HashEntry he=new HashEntry();
he.value=value;
table[bin]=he;
return null;
}
-
}
}
public boolean hasNext() {
- if (he.next!=null)
+ if (he!=null&&he.next!=null)
return true;
int i=bin;
- while(map.table[i]==null&&(i<map.table.length))
+ while((i<map.table.length)&&map.table[i]==null)
i++;
return (i<map.table.length);
}
public Object next() {
- if (he.next!=null) {
+ if (he!=null&&he.next!=null) {
he=he.next;
Object o;
if (type==0)
o=he.value;
return o;
}
- while((map.table[bin]==null)&&(bin<map.table.length))
+ while((bin<map.table.length)&&
+ (map.table[bin]==null))
bin++;
if (bin<map.table.length) {
- he=map.table[bin];
+ he=map.table[bin++];
Object o;
if (type==0)
o=he.key;
return o;
} else System.error();
}
-
}
boolean isNeg=false;
int start=0;
byte[] chars=str.getBytes();
- if (chars[0]=='-') {
+
+ while(chars[start]==' '||chars[start]=='\t')
+ start++;
+
+ if (chars[start]=='-') {
isNeg=true;
- start=1;
+ start++;
}
- for(int i=start;i<str.length();i++) {
+ boolean cont=true;
+ for(int i=start;cont&&i<str.length();i++) {
byte b=chars[i];
int val;
if (b>='0'&&b<='9')
val=10+b-'a';
else if (b>='A'&&b<='Z')
val=10+b-'A';
- if (val>=radix)
- System.error();
- value=value*radix+val;
+ else cont=false;
+ if (cont) {
+ if (val>=radix)
+ System.error();
+ value=value*radix+val;
+ }
}
if (isNeg)
value=-value;
private void generateFlatCastNode(FlatMethod fm, FlatCastNode fcn, PrintWriter output) {
/* TODO: Do type check here */
- output.println(generateTemp(fm,fcn.getDst())+"=("+fcn.getType().getSafeSymbol()+")"+generateTemp(fm,fcn.getSrc())+";");
+ if (fcn.getType().isArray()) {
+ ;
+ } else if (fcn.getType().isClass())
+ output.println(generateTemp(fm,fcn.getDst())+"=(struct "+fcn.getType().getSafeSymbol()+" *)"+generateTemp(fm,fcn.getSrc())+";");
+ else
+ output.println(generateTemp(fm,fcn.getDst())+"=("+fcn.getType().getSafeSymbol()+")"+generateTemp(fm,fcn.getSrc())+";");
}
private void generateFlatLiteralNode(FlatMethod fm, FlatLiteralNode fln, PrintWriter output) {
} else if (((int)pointer)==1) {
/* Array of pointers */
struct ArrayObject *ao=(struct ArrayObject *) ptr;
+ struct ArrayObject *ao_cpy=(struct ArrayObject *) cpy;
int length=ao->___length___;
int i;
for(i=0;i<length;i++) {
if (objptr==NULL) {
((void **)(((char *)& ao->___length___)+sizeof(int)))[i]=NULL;
} else if (RuntimeHashcontainskey(forward, (int) objptr))
- RuntimeHashget(forward,(int) objptr,(int *) &((void **)(((char *)& ao->___length___)+sizeof(int)))[i]);
+ RuntimeHashget(forward,(int) objptr,(int *) &((void **)(((char *)& ao_cpy->___length___)+sizeof(int)))[i]);
else {
void * copy=createcopy(objptr);
RuntimeHashadd(forward, (int) objptr, (int)copy);
RuntimeHashadd(reverse, (int) copy, (int) objptr);
RuntimeHashadd(todo, (int) objptr, (int) objptr);
- ((void **)(((char *)& ao->___length___)+sizeof(int)))[i]=copy;
+ ((void **)(((char *)& ao_cpy->___length___)+sizeof(int)))[i]=copy;
}
}
} else {
if (bytewritten!=length) {
printf("ERROR IN NATIVEWRITE\n");
}
- flagorand(sock,0,0xFFFFFFFE);
+ // flagorand(sock,0,0xFFFFFFFE);
}
int ___Socket______nativeRead_____AR_B(struct ___Socket___ * sock, struct ArrayObject * ao) {