X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=rts%2FMBlock.c;h=85fe02da6e12a411b255e9194a8ce8e440f0a8b4;hb=a92db2a52d056ab962e4f55d5d8e3997ac3b8e4f;hp=edde679992f3f5af8d19a57277661088135942d3;hpb=db76a303650647c24a9a3f998dbe66e1d1623a1c;p=ghc-hetmet.git diff --git a/rts/MBlock.c b/rts/MBlock.c index edde679..85fe02d 100644 --- a/rts/MBlock.c +++ b/rts/MBlock.c @@ -408,7 +408,7 @@ findFreeBlocks(nat n) { if( (((unsigned long)it->base) & MBLOCK_MASK) == 0) { /* MBlock aligned */ ret = (void*)it->base; if(it->size==required_size) { - prev->next=0; + prev->next=it->next; stgFree(it); } else { it->base += required_size; @@ -442,7 +442,7 @@ static void commitBlocks(char* base, int size) { alloc_rec* it; it=allocs; - for( ; it!=0 && (it->base+it->size)next ) {} + for( ; it!=0 && (it->base+it->size)<=base; it=it->next ) {} for( ; it!=0 && size>0; it=it->next ) { int size_delta; void* temp;