From adcb551020fd3256505b2ba93dbe4bd0c5b8c64b Mon Sep 17 00:00:00 2001 From: "Markus F.X.J. Oberhumer" Date: Fri, 17 Mar 2006 15:17:37 +0000 Subject: [PATCH] Increase alignment to 16. committer: mfx 1142608657 +0000 --- src/mem.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/mem.cpp b/src/mem.cpp index 888c078d..056cd30f 100644 --- a/src/mem.cpp +++ b/src/mem.cpp @@ -60,6 +60,8 @@ static int mcheck_init() MemBuffer::MemBuffer() : b(NULL), b_size(0) { + if (use_mcheck < 0) + mcheck_init(); } MemBuffer::MemBuffer(unsigned size) : @@ -87,7 +89,7 @@ void MemBuffer::dealloc() set_be32(b + b_size, 0); set_be32(b + b_size + 4, 0); // - ::free(b - 8); + ::free(b - 16); } else ::free(b); @@ -173,7 +175,7 @@ void MemBuffer::alloc(unsigned size) assert(b_size == 0); // assert((int)size > 0); - unsigned total = use_mcheck ? size + 16 : size; + unsigned total = use_mcheck ? size + 32 : size; assert((int)total > 0); unsigned char *p = (unsigned char *) malloc(total); if (!p) @@ -185,7 +187,7 @@ void MemBuffer::alloc(unsigned size) b_size = size; if (use_mcheck) { - b = p + 8; + b = p + 16; // store magic constants to detect buffer overruns set_be32(b - 8, b_size); set_be32(b - 4, MAGIC1(b));