From 1afa37aeef51d5b3ffe06ee8ac495908a29a4aa4 Mon Sep 17 00:00:00 2001 From: bdemsky Date: Fri, 15 Jul 2011 03:42:41 +0000 Subject: [PATCH] fix odd core pmc bug --- Robust/src/Runtime/bamboo/pmc_garbage.c | 10 ++++++---- Robust/src/Runtime/bamboo/pmc_mem.c | 4 ++-- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/Robust/src/Runtime/bamboo/pmc_garbage.c b/Robust/src/Runtime/bamboo/pmc_garbage.c index 0a769c3b..3a9f99dc 100644 --- a/Robust/src/Runtime/bamboo/pmc_garbage.c +++ b/Robust/src/Runtime/bamboo/pmc_garbage.c @@ -46,9 +46,11 @@ void pmc_onceInit() { pmc_heapptr->regions[i].lastptr=pmc_heapptr->units[i*4-1].endptr; pmc_heapptr->regions[i].lowunit=4*i; pmc_heapptr->regions[i].highunit=4*(i+1); - pmc_heapptr->regions[i+1].lastptr=pmc_heapptr->units[(i+1)*4+3].endptr; - pmc_heapptr->regions[i+1].lowunit=4*(i+1); - pmc_heapptr->regions[i+1].highunit=4*(i+2); + if ((i+1)regions[i+1].lastptr=pmc_heapptr->units[(i+1)*4+3].endptr; + pmc_heapptr->regions[i+1].lowunit=4*(i+1); + pmc_heapptr->regions[i+1].highunit=4*(i+2); + } } //for(int i=0;iregions[i].lastptr); @@ -61,7 +63,7 @@ void pmc_init() { pmc_heapptr->numthreads=NUMCORES4GC; for(int i=0;iregions[i].lastptr; - void *finishptr=pmc_heapptr->regions[i+1].lastptr; + void *finishptr=(i+1)regions[i+1].lastptr:pmc_heapptr->regions[i].endptr; struct pmc_region *region=&pmc_heapptr->regions[i]; unsigned int startindex=region->lowunit; unsigned int endindex=pmc_heapptr->regions[i+1].highunit; diff --git a/Robust/src/Runtime/bamboo/pmc_mem.c b/Robust/src/Runtime/bamboo/pmc_mem.c index 1b488741..191ce43b 100644 --- a/Robust/src/Runtime/bamboo/pmc_mem.c +++ b/Robust/src/Runtime/bamboo/pmc_mem.c @@ -11,8 +11,8 @@ void * pmc_alloc(unsigned int * numbytesallocated, unsigned int minimumbytes) { for(int i=0;iregions[i].lastptr; - void *finishptr=pmc_heapptr->regions[i+1].lastptr; - + void *finishptr=(i+1)regions[i+1].lastptr:pmc_heapptr->regions[i].endptr; + if ((finishptr-startptr)>memcheck) { struct pmc_region *region=&pmc_heapptr->regions[i]; tmc_spin_mutex_lock(®ion->lock); -- 2.34.1