From 8c1a9899d4460aa19780919f4245c08d7ebba0e9 Mon Sep 17 00:00:00 2001 From: Roberto Ierusalimschy Date: Thu, 22 Feb 1996 17:34:33 -0300 Subject: functions "luaI_free" and "luaI_realloc" (or macro "growvector") may be called with NULL. --- luamem.c | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) (limited to 'luamem.c') diff --git a/luamem.c b/luamem.c index d040f31d..ef4eae29 100644 --- a/luamem.c +++ b/luamem.c @@ -3,7 +3,7 @@ ** TecCGraf - PUC-Rio */ -char *rcs_mem = "$Id: mem.c,v 1.6 1996/01/22 14:15:13 roberto Exp roberto $"; +char *rcs_mem = "$Id: mem.c,v 1.7 1996/02/04 16:59:12 roberto Exp roberto $"; #include #include @@ -27,8 +27,11 @@ static void mem_error (void) void luaI_free (void *block) { - *((int *)block) = -1; /* to catch errors */ - free(block); + if (block) + { + *((int *)block) = -1; /* to catch errors */ + free(block); + } } @@ -43,16 +46,10 @@ void *luaI_malloc (unsigned long size) void *luaI_realloc (void *oldblock, unsigned long size) { - void *block = realloc(oldblock, (size_t)size); + void *block = oldblock ? realloc(oldblock, (size_t)size) : + malloc((size_t)size); if (block == NULL) mem_error(); return block; } - -char *luaI_strdup (char *str) -{ - char *newstr = luaI_malloc(strlen(str)+1); - strcpy(newstr, str); - return newstr; -} -- cgit v1.2.3-55-g6feb