From 995701749fe57b79d51b2ed358974577f25a624f Mon Sep 17 00:00:00 2001 From: TuDatTr Date: Sun, 24 Jan 2021 16:59:52 +0100 Subject: [PATCH] place(void *bp, size_t asize): differenct case for last sizeclass --- mm.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/mm.c b/mm.c index 66d87e1..6e33926 100644 --- a/mm.c +++ b/mm.c @@ -133,6 +133,14 @@ static void* extend_heap(size_t words); static void place(void *bp, size_t asize) { size_t csize = GET_SIZE(HDRP(bp)); + + if (asize <= (2*(1 << (LISTSIZE-1)))) { + PUT(HDRP(bp), PACK(csize, 1)); + PUT(FTRP(bp), PACK(csize, 1)); + } else { + // Sonderfall 10 + } + if ((csize - asize) >= (2*DSIZE)) { PUT(HDRP(bp), PACK(asize, 1)); PUT(FTRP(bp), PACK(asize, 1)); @@ -141,8 +149,6 @@ static void place(void *bp, size_t asize) PUT(FTRP(bp), PACK(csize-asize, 0)); } else { - PUT(HDRP(bp), PACK(csize, 1)); - PUT(FTRP(bp), PACK(csize, 1)); } }