fixes in mcrealloc
[tedtools.git] / tmalloc.c
index d6c0b76..fee18cb 100644 (file)
--- a/tmalloc.c
+++ b/tmalloc.c
@@ -228,6 +228,9 @@ mcrealloc(void * ptr, size_t size) {
                        /* just enlarge */
                        alloc->cntx->chunk->freesize -= PTRALIGN(size)-realsize;
                        alloc->size+=PTRALIGN(size)-realsize;
+                       memmove( ((char*)alloc) - (PTRALIGN(size)-realsize), alloc, PTRALIGN(size)+MCASHDRSZ );
+                       alloc = (MCAllocatedSpace*) ( ((char*)alloc) - (PTRALIGN(size)-realsize) );
+                       ptr = (void*)alloc->data;
                        if ( alloc->cntx->flags & MC_DEBUG ) {
                                memset( (char*)(alloc->data) + realsize,  0xc3, PTRALIGN(size)-realsize );
                                *(u_int32_t*)((char*)alloc + alloc->size - sizeof(u_int32_t) ) = MCMAGICKNUMBER;