From 260eabd9a72c064e15ba2a6a51c1c83929ed45ea Mon Sep 17 00:00:00 2001
From: bdemsky <bdemsky>
Date: Fri, 17 Aug 2007 06:12:14 +0000
Subject: [PATCH] problems getting william's code to compile

---
 Robust/src/IR/Flat/BuildCode.java | 12 ++++++++----
 Robust/src/Runtime/task.c         | 15 ++++++---------
 2 files changed, 14 insertions(+), 13 deletions(-)

diff --git a/Robust/src/IR/Flat/BuildCode.java b/Robust/src/IR/Flat/BuildCode.java
index f253e6da..4a8d628b 100644
--- a/Robust/src/IR/Flat/BuildCode.java
+++ b/Robust/src/IR/Flat/BuildCode.java
@@ -2113,9 +2113,9 @@ public class BuildCode {
 	 headers.println("int numotd;");
 	 headers.println("struct optionaltaskdescriptor ** otdarray;");
 	 headers.println("int numfsanalysiswrappers;");
-	 headers.println("struct fsanalysiswrapper ** fsanalysiswrapperarray;\n};\n\n");
+	 headers.println("struct fsanalysiswrapper ** fsanalysiswrapperarray;\n};");
 	 
-	 headers.println("struct classanalysiswrapper * classanalysiswrapperarray[];\n");
+	 headers.println("extern struct classanalysiswrapper * classanalysiswrapperarray[];");
 
 	
 
@@ -2418,11 +2418,15 @@ public class BuildCode {
 	 
 	 //build an array containing every classes for which code has been build
 	 output.println("struct classanalysiswrapper * classanalysiswrapperarray[]={");
+	 boolean needcomma=false;
 	 for(Iterator classit = processedcd.iterator(); classit.hasNext();){
 	     ClassDescriptor cdtemp=(ClassDescriptor)classit.next();
-	     if(!classit.hasNext()) output.println("&classanalysiswrapper_"+cdtemp.getSafeSymbol()+"};\n");
-	     else output.println("&classanalysiswrapper_"+cdtemp.getSafeSymbol()+",");
+	     if (needcomma)
+		 output.println(", ");
+	     needcomma=true;
+	     output.println("&classanalysiswrapper_"+cdtemp.getSafeSymbol());
 	 }
+	 output.println("};");
 	 
 	 output.println("int numclasses="+processedcd.size()+";");
 	 headers.println("extern numclasses;");
diff --git a/Robust/src/Runtime/task.c b/Robust/src/Runtime/task.c
index bdde536a..5986ae9e 100644
--- a/Robust/src/Runtime/task.c
+++ b/Robust/src/Runtime/task.c
@@ -359,10 +359,6 @@ void flagorand(void * ptr, int ormask, int andmask) {
 #endif
     {
     flag&=andmask;
-    // Not sure why this was necessary
-    //  if (flag==oldflag) /* Don't do anything */
-    //  return;
-    //else 
     flagbody(ptr, flag);
     }
 }
@@ -372,15 +368,16 @@ void intflagorand(void * ptr, int ormask, int andmask) {
   int flag=ormask|oldflag;
 #ifdef OPTIONAL
   struct ___Object___ * obj = (struct ___Object___ *)ptr;
-  if(obj->failedstatus==1){/*store the information about exitfses*/
+  if(obj->failedstatus==1) {/*store the information about exitfses*/
     int i,j,counter=0, offset=0;
-    for(i=0; i<obj->numotds; i++){
+    for(i=0; i<obj->numotds; i++) {
       counter+=obj->otds[i]->numenterflags;
     }
     obj->numexitfses=counter;
-    if(obj->exitfses!=NULL) RUNFREE(obj->exitfses);
+    if(obj->exitfses!=NULL) 
+      RUNFREE(obj->exitfses);
     obj->exitfses= RUNMALLOC(sizeof(int) * counter);
-    for(i=0; i<obj->numotds; i++){
+    for(i=0; i<obj->numotds; i++) {
       for(j=0; j<obj->otds[i]->numenterflags; j++){
 	oldflag=obj->otds[i]->enterflags[j];
 	flag=ormask|oldflag;
@@ -438,7 +435,7 @@ void flagorandinit(void * ptr, int ormask, int andmask) {
    while(flagptr!=NULL) {
      struct ___Object___ *temp=NULL;
      struct parameterwrapper *ptr;
-     struct RuntimeNode * node = flagptr->objectset->listhead;
+     struct ObjectNode * node = flagptr->objectset->listhead;
      while(node!=NULL){
        temp=(struct ___Object___ *)node->key;
        if(temp->failedstatus==1 && temp->hashcode==currobj->hashcode){
-- 
2.34.1