From cd753d067b8bb19027f5b798852a493a19f82ef5 Mon Sep 17 00:00:00 2001 From: yeom Date: Wed, 14 Jul 2010 01:40:23 +0000 Subject: [PATCH] bug fix: memory queue has the case of empty rentry. --- Robust/src/Runtime/garbage.c | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/Robust/src/Runtime/garbage.c b/Robust/src/Runtime/garbage.c index bc12ef06..9e7b62ee 100644 --- a/Robust/src/Runtime/garbage.c +++ b/Robust/src/Runtime/garbage.c @@ -1064,6 +1064,23 @@ updateMemoryQueue(SESEcommon_p seseParent){ int idx; for(idx=0; idxindex; idx++){ REntry *rentry=vt->array[idx]; + if(rentry!=NULL){ + struct garbagelist * gl= (struct garbagelist *)&(((SESEcommon*)(rentry->seseRec))[1]); + updateAscendantSESE(gl); + while(gl!=NULL) { + int i; + for(i=0; isize; i++) { + void * orig=gl->array[i]; + ENQUEUE(orig, gl->array[i]); + } + gl=gl->next; + } + } + } + }else if(memoryItem->type==SINGLEITEM){ + SCC *scc=(SCC*)memoryItem; + REntry *rentry=scc->val; + if(rentry!=NULL){ struct garbagelist * gl= (struct garbagelist *)&(((SESEcommon*)(rentry->seseRec))[1]); updateAscendantSESE(gl); while(gl!=NULL) { @@ -1075,19 +1092,6 @@ updateMemoryQueue(SESEcommon_p seseParent){ gl=gl->next; } } - }else if(memoryItem->type==SINGLEITEM){ - SCC *scc=(SCC*)memoryItem; - REntry *rentry=scc->val; - struct garbagelist * gl= (struct garbagelist *)&(((SESEcommon*)(rentry->seseRec))[1]); - updateAscendantSESE(gl); - while(gl!=NULL) { - int i; - for(i=0; isize; i++) { - void * orig=gl->array[i]; - ENQUEUE(orig, gl->array[i]); - } - gl=gl->next; - } } memoryItem=memoryItem->next; } -- 2.34.1