From 63b6fa66b74e4b0f306869a1bb0b3b621b232ea7 Mon Sep 17 00:00:00 2001 From: DocQuantum <shchurgood@gmail.com> Date: Thu, 17 Oct 2019 23:10:16 -0500 Subject: [PATCH] Free now checks for null pointers, change bit is more effiecient --- mm.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/mm.c b/mm.c index ef2efd6..04c3b04 100644 --- a/mm.c +++ b/mm.c @@ -167,12 +167,20 @@ void *mm_malloc(size_t size) /* * mm_free - Free a block + * + * Given the alloced bit is set, get header and increment by 1 + * since that essentially sets the bit to 1 or free, else print + * error to stderr. */ /* $begin mmfree */ void mm_free(void *bp) { + if(bp == NULL){ + fprintf(stderr, "Error: memory not alloced or corrupted"); + } + if(!GET_ALLOC(HDRP(bp))){ - *(size_t *)(HDRP(bp)) = *(size_t *)(HDRP(bp)) + 1; + *HDRP(bp) = *HDRP(bp) | 1; } else { fprintf(stderr, "Error: memory not alloced or corrupted"); } @@ -183,10 +191,14 @@ void mm_free(void *bp) /* * mm_realloc - naive implementation of mm_realloc + * + * Given an alloced pointer, get size, add to that size, pass to malloc to + * get new block. + * */ void *mm_realloc(void *ptr, size_t size) { - /* You need to implement this function. */ + return NULL; } -- GitLab