From d98942cdcc55f92e9f83963c3ed7721e11ef7d01 Mon Sep 17 00:00:00 2001 From: yeom Date: Tue, 6 Apr 2010 02:38:21 +0000 Subject: [PATCH] bug fixes for handling unresolved pointer. --- Robust/src/IR/Flat/BuildCode.java | 12 ++++++------ Robust/src/Runtime/mlp_runtime.c | 7 ++++--- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/Robust/src/IR/Flat/BuildCode.java b/Robust/src/IR/Flat/BuildCode.java index a5c4c9e3..7f061e87 100644 --- a/Robust/src/IR/Flat/BuildCode.java +++ b/Robust/src/IR/Flat/BuildCode.java @@ -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) {"); diff --git a/Robust/src/Runtime/mlp_runtime.c b/Robust/src/Runtime/mlp_runtime.c index 766b05cf..7f931d6f 100644 --- a/Robust/src/Runtime/mlp_runtime.c +++ b/Robust/src/Runtime/mlp_runtime.c @@ -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 { -- 2.34.1