bug fixes for handling unresolved pointer.
authoryeom <yeom>
Tue, 6 Apr 2010 02:38:21 +0000 (02:38 +0000)
committeryeom <yeom>
Tue, 6 Apr 2010 02:38:21 +0000 (02:38 +0000)
Robust/src/IR/Flat/BuildCode.java
Robust/src/Runtime/mlp_runtime.c

index a5c4c9e3cbb2314d0c9aabcb4b78c2dd63cbf144..7f061e870ab9ce8ff676948049be1c9b4ae3f304 100644 (file)
@@ -3421,6 +3421,12 @@ public class BuildCode {
                                                                        + ", seseToIssue);");
                                                } else {
                                                        TempDescriptor td = waitingElement.getTempDesc();
+                                                               output
+                                                                               .println("     rentry=mlpCreateFineREntry("
+                                                                                               + waitingElement.getStatus()
+                                                                                               + ", seseToIssue,  seseToIssue->"
+                                                                                               + waitingElement.getDynID()
+                                                                                               + ");");
                                                        if (td != null) {
                                                                VariableSourceToken vst = fsen
                                                                                .getStaticInVarSrc(td);
@@ -3428,12 +3434,6 @@ public class BuildCode {
                                                                                + vst.getSESE().getPrettyIdentifier()
                                                                                + vst.getSESE().getIdentifier() + "_"
                                                                                + vst.getAge();
-                                                               output
-                                                                               .println("     rentry=mlpCreateFineREntry("
-                                                                                               + waitingElement.getStatus()
-                                                                                               + ", seseToIssue,  seseToIssue->"
-                                                                                               + waitingElement.getDynID()
-                                                                                               + ");");
                                                                output.println("     if(seseToIssue->"
                                                                                + waitingElement.getDynID()
                                                                                + " == NULL) {");
index 766b05cf0951f79eef097fbd5dcf3f9c2a342007..7f931d6f530470ef2b3a6a1daabcad553e46a901 100644 (file)
@@ -240,7 +240,7 @@ int ADDTABLE(MemoryQueue *q, REntry *r) {
   //at this point, have table
   Hashtable* table=(Hashtable*)q->tail;
   r->hashtable=table;
-  if(*(r->pointer)==0 || (*(r->pointer)!=0 && table->unresolvedQueue!=NULL)){
+  if(r->pointer!=0 && (*(r->pointer)==0 || (*(r->pointer)!=0 && table->unresolvedQueue!=NULL))){
      struct Queue* val;
     // grab lock on the queue    
     do {  
@@ -272,8 +272,9 @@ int ADDTABLE(MemoryQueue *q, REntry *r) {
     }   
     return NOTREADY;
   }
-
-  r->dynID=(void*)*(r->pointer); // interim fix.
+  if(r->pointer!=0){
+    r->dynID=(void*)*(r->pointer); // interim fix.
+  }
   BinItem * val;
   int key=generateKey((unsigned int)(unsigned INTPTR)r->dynID);
   do {