summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoberto Ierusalimschy <roberto@inf.puc-rio.br>1997-07-30 15:29:08 -0300
committerRoberto Ierusalimschy <roberto@inf.puc-rio.br>1997-07-30 15:29:08 -0300
commit1d7857bc635c0bfe7c5b1f325d31feb7660e9a5a (patch)
tree699f68a1d92ac448779a3196f30bc8d491b7f379
parent72a1d81b510797759a8a5b9e701eb4b791aa8a84 (diff)
downloadlua-github-1d7857bc635c0bfe7c5b1f325d31feb7660e9a5a.tar.gz
free(b) is equivalent to realloc(b, 0)
-rw-r--r--luamem.c8
-rw-r--r--luamem.h4
2 files changed, 8 insertions, 4 deletions
diff --git a/luamem.c b/luamem.c
index 9c0799b3..812da490 100644
--- a/luamem.c
+++ b/luamem.c
@@ -3,7 +3,7 @@
** TecCGraf - PUC-Rio
*/
-char *rcs_luamem = "$Id: luamem.c,v 1.15 1997/03/31 14:17:09 roberto Exp roberto $";
+char *rcs_luamem = "$Id: luamem.c,v 1.16 1997/04/01 21:23:20 roberto Exp $";
#include <stdlib.h>
@@ -15,7 +15,7 @@ char *rcs_luamem = "$Id: luamem.c,v 1.15 1997/03/31 14:17:09 roberto Exp roberto
#if !DEBUG
-void luaI_free (void *block)
+static void lfree (void *block)
{
if (block)
{
@@ -31,6 +31,10 @@ void *luaI_realloc (void *oldblock, unsigned long size)
size_t s = (size_t)size;
if (s != size)
lua_error("Allocation Error: Block too big");
+ if (size == 0) { /* ANSI doen't need this, but some machines... */
+ lfree(oldblock);
+ return NULL;
+ }
block = oldblock ? realloc(oldblock, s) : malloc(s);
if (block == NULL)
lua_error(memEM);
diff --git a/luamem.h b/luamem.h
index 8b88ee9b..f9c573d7 100644
--- a/luamem.h
+++ b/luamem.h
@@ -1,7 +1,7 @@
/*
** mem.c
** memory manager for lua
-** $Id: luamem.h,v 1.9 1997/03/31 14:10:11 roberto Exp roberto $
+** $Id: luamem.h,v 1.10 1997/07/29 20:38:45 roberto Exp roberto $
*/
#ifndef luamem_h
@@ -23,12 +23,12 @@
#define memEM "not enough memory"
-void luaI_free (void *block);
void *luaI_realloc (void *oldblock, unsigned long size);
void *luaI_buffer (unsigned long size);
int luaI_growvector (void **block, unsigned long nelems, int size,
char *errormsg, unsigned long limit);
+#define luaI_free(b) luaI_realloc((b), 0)
#define luaI_malloc(s) luaI_realloc(NULL, (s))
#define new(s) ((s *)luaI_malloc(sizeof(s)))
#define newvector(n,s) ((s *)luaI_malloc((n)*sizeof(s)))