Commit 5edd01fa authored by SHREYANSH JAIN's avatar SHREYANSH JAIN

minor bug fix

parent 508bad1e
...@@ -135,6 +135,10 @@ void mm_free(void *ptr) ...@@ -135,6 +135,10 @@ void mm_free(void *ptr)
*/ */
void *mm_realloc(void *ptr, size_t size) void *mm_realloc(void *ptr, size_t size)
{ {
if(size<=0){
mm_free(ptr);
return NULL;
}
void *oldptr = ptr; void *oldptr = ptr;
struct mm_block *blockPtr = (struct mm_block*)((char *)oldptr - SIZE_T_SIZE); struct mm_block *blockPtr = (struct mm_block*)((char *)oldptr - SIZE_T_SIZE);
void *newptr; void *newptr;
...@@ -150,8 +154,8 @@ void *mm_realloc(void *ptr, size_t size) ...@@ -150,8 +154,8 @@ void *mm_realloc(void *ptr, size_t size)
newptr = blockPtr + ALIGN(blockPtr->size + SIZE_T_SIZE); newptr = blockPtr + ALIGN(blockPtr->size + SIZE_T_SIZE);
*(struct mm_block *)newptr = newBlock; *(struct mm_block *)newptr = newBlock;
freeList[freeListSize++] = (struct mm_block *)newptr; freeList[freeListSize++] = (struct mm_block *)newptr;
return oldptr;
} }
return oldptr;
} }
newptr = mm_malloc(size); newptr = mm_malloc(size);
if (newptr == NULL) if (newptr == NULL)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment