From 1eab95935ad60c6fb3838107ffa24b35ab133abf Mon Sep 17 00:00:00 2001 From: bdemsky Date: Fri, 3 Nov 2006 06:53:00 +0000 Subject: [PATCH] Bug fixes... --- Robust/src/ClassLibrary/HashMap.java | 5 ++++- Robust/src/ClassLibrary/HashMapIterator.java | 12 ++++++------ Robust/src/ClassLibrary/Integer.java | 20 ++++++++++++++------ Robust/src/IR/Flat/BuildCode.java | 7 ++++++- Robust/src/Runtime/checkpoint.c | 5 +++-- Robust/src/Runtime/socket.c | 2 +- 6 files changed, 34 insertions(+), 17 deletions(-) diff --git a/Robust/src/ClassLibrary/HashMap.java b/Robust/src/ClassLibrary/HashMap.java index 2d6201de..d977e052 100644 --- a/Robust/src/ClassLibrary/HashMap.java +++ b/Robust/src/ClassLibrary/HashMap.java @@ -65,6 +65,7 @@ public class HashMap { numItems--; return oldvalue; } + ptr=ptr.next; } return null; } @@ -76,6 +77,7 @@ public class HashMap { if (ptr.key.equals(key)) { return ptr.value; } + ptr=ptr.next; } return null; } @@ -87,6 +89,7 @@ public class HashMap { if (ptr.key.equals(key)) { return true; } + ptr=ptr.next; } return false; } @@ -105,6 +108,7 @@ public class HashMap { ptr.value=value; return oldvalue; } + ptr=ptr.next; } HashEntry he=new HashEntry(); he.value=value; @@ -113,5 +117,4 @@ public class HashMap { table[bin]=he; return null; } - } diff --git a/Robust/src/ClassLibrary/HashMapIterator.java b/Robust/src/ClassLibrary/HashMapIterator.java index c0f0eb48..70e1a405 100644 --- a/Robust/src/ClassLibrary/HashMapIterator.java +++ b/Robust/src/ClassLibrary/HashMapIterator.java @@ -12,16 +12,16 @@ class HashMapIterator { } public boolean hasNext() { - if (he.next!=null) + if (he!=null&&he.next!=null) return true; int i=bin; - while(map.table[i]==null&&(i='0'&&b<='9') @@ -35,9 +40,12 @@ public class Integer { 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; diff --git a/Robust/src/IR/Flat/BuildCode.java b/Robust/src/IR/Flat/BuildCode.java index 7a123a21..e3394adc 100644 --- a/Robust/src/IR/Flat/BuildCode.java +++ b/Robust/src/IR/Flat/BuildCode.java @@ -1181,7 +1181,12 @@ public class BuildCode { 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) { diff --git a/Robust/src/Runtime/checkpoint.c b/Robust/src/Runtime/checkpoint.c index b7efc1de..f47488d6 100644 --- a/Robust/src/Runtime/checkpoint.c +++ b/Robust/src/Runtime/checkpoint.c @@ -33,6 +33,7 @@ void ** makecheckpoint(int numparams, void ** srcpointer, struct RuntimeHash * f } 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___)+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 { diff --git a/Robust/src/Runtime/socket.c b/Robust/src/Runtime/socket.c index 190aae55..ac05ff89 100644 --- a/Robust/src/Runtime/socket.c +++ b/Robust/src/Runtime/socket.c @@ -96,7 +96,7 @@ void ___Socket______nativeWrite_____AR_B(struct ___Socket___ * sock, struct Arra 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) { -- 2.34.1