From 1f917e709ca3fe41cf07fd4bf99a080883521394 Mon Sep 17 00:00:00 2001 From: Roberto Ierusalimschy Date: Tue, 6 Feb 2001 14:01:29 -0200 Subject: better use of extra include files (both for tests and for old_ansi) --- lmem.c | 115 ++++------------------------------------------------------------- 1 file changed, 6 insertions(+), 109 deletions(-) (limited to 'lmem.c') diff --git a/lmem.c b/lmem.c index bce76029..f2ccac72 100644 --- a/lmem.c +++ b/lmem.c @@ -1,5 +1,5 @@ /* -** $Id: lmem.c,v 1.44 2001/01/24 15:45:33 roberto Exp roberto $ +** $Id: lmem.c,v 1.45 2001/02/05 19:08:01 roberto Exp roberto $ ** Interface to Memory Manager ** See Copyright Notice in lua.h */ @@ -16,115 +16,12 @@ - -#ifdef LUA_DEBUG -/* -** {====================================================================== -** Controlled version for realloc. -** ======================================================================= -*/ - - -#include -#include -#include - -#define basicrealloc(b, os, s) debug_realloc(b, os, s) -#define basicfree(b, s) debug_realloc(b, s, 0) - - -/* ensures maximum alignment for HEADER */ -#define HEADER (sizeof(union L_Umaxalign)) - -#define MARKSIZE 32 -#define MARK 0x55 /* 01010101 (a nice pattern) */ - - -#define blocksize(b) ((size_t *)((char *)(b) - HEADER)) - -unsigned long memdebug_numblocks = 0; -unsigned long memdebug_total = 0; -unsigned long memdebug_maxmem = 0; -unsigned long memdebug_memlimit = ULONG_MAX; - - -static void *checkblock (void *block) { - size_t *b = blocksize(block); - size_t size = *b; - int i; - for (i=0;i memdebug_memlimit) - return NULL; /* to test memory allocation errors */ - else { - char *newblock; - int i; - size_t realsize = HEADER+size+MARKSIZE; - if (realsize < size) return NULL; /* overflow! */ - newblock = (char *)malloc(realsize); /* alloc a new block */ - if (newblock == NULL) return NULL; - if (oldsize > size) oldsize = size; - if (block) { - memcpy(newblock+HEADER, block, oldsize); - freeblock(block); /* erase (and check) old copy */ - } - /* initialize new part of the block with something `weird' */ - memset(newblock+HEADER+oldsize, -MARK, size-oldsize); - memdebug_total += size; - if (memdebug_total > memdebug_maxmem) - memdebug_maxmem = memdebug_total; - memdebug_numblocks++; - *(size_t *)newblock = size; - for (i=0;i= MAX_SIZET) luaD_error(L, "memory allocation error: block too big"); else { - block = basicrealloc(block, oldsize, size); + block = l_realloc(block, oldsize, size); if (block == NULL) { if (L) luaD_breakrun(L, LUA_ERRMEM); /* break run without error message */ -- cgit v1.2.3-55-g6feb