diff options
Diffstat (limited to 'src/mem.c')
-rw-r--r-- | src/mem.c | 25 |
1 files changed, 8 insertions, 17 deletions
@@ -3,7 +3,7 @@ ** TecCGraf - PUC-Rio */ -char *rcs_mem = "$Id: mem.c,v 1.12 1996/05/06 16:59:00 roberto Exp $"; +char *rcs_mem = "$Id: mem.c,v 1.13 1996/05/24 14:31:10 roberto Exp $"; #include <stdlib.h> @@ -11,9 +11,6 @@ char *rcs_mem = "$Id: mem.c,v 1.12 1996/05/06 16:59:00 roberto Exp $"; #include "lua.h" -#define mem_error() lua_error(memEM) - - void luaI_free (void *block) { if (block) @@ -24,21 +21,15 @@ void luaI_free (void *block) } -void *luaI_malloc (unsigned long size) -{ - void *block = malloc((size_t)size); - if (block == NULL) - mem_error(); - return block; -} - - void *luaI_realloc (void *oldblock, unsigned long size) { - void *block = oldblock ? realloc(oldblock, (size_t)size) : - malloc((size_t)size); + void *block; + size_t s = (size_t)size; + if (s != size) + lua_error("Allocation Error: Block too big"); + block = oldblock ? realloc(oldblock, s) : malloc(s); if (block == NULL) - mem_error(); + lua_error(memEM); return block; } @@ -52,7 +43,7 @@ int luaI_growvector (void **block, unsigned long nelems, int size, if (nelems > limit) nelems = limit; *block = luaI_realloc(*block, nelems*size); - return (int) nelems; + return (int)nelems; } |