|
|
@ -1,5 +1,5 @@ |
|
|
|
/*
|
|
|
|
** $Id: lmem.c,v 1.56 2002/06/11 16:23:47 roberto Exp roberto $ |
|
|
|
** $Id: lmem.c,v 1.57 2002/06/18 15:19:27 roberto Exp roberto $ |
|
|
|
** Interface to Memory Manager |
|
|
|
** See Copyright Notice in lua.h |
|
|
|
*/ |
|
|
@ -18,15 +18,22 @@ |
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
** definition for realloc function. It must assure that |
|
|
|
** l_realloc(block, x, 0) frees the block, and l_realloc(NULL, 0, x) |
|
|
|
** allocates a new block (ANSI C assures that). |
|
|
|
** (`os' is the old block size; some allocators may use that.) |
|
|
|
** definition for realloc function. It must assure that l_realloc(NULL, |
|
|
|
** 0, x) allocates a new block (ANSI C assures that). (`os' is the old |
|
|
|
** block size; some allocators may use that.) |
|
|
|
*/ |
|
|
|
#ifndef l_realloc |
|
|
|
#define l_realloc(b,os,s) realloc(b,s) |
|
|
|
#endif |
|
|
|
|
|
|
|
/*
|
|
|
|
** definition for free function. (`os' is the old block size; some |
|
|
|
** allocators may use that.) |
|
|
|
*/ |
|
|
|
#ifndef l_free |
|
|
|
#define l_free(b,os) free(b) |
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
|
|
#define MINSIZEARRAY 4 |
|
|
|
|
|
|
@ -56,7 +63,7 @@ void *luaM_growaux (lua_State *L, void *block, int *size, int size_elems, |
|
|
|
void *luaM_realloc (lua_State *L, void *block, lu_mem oldsize, lu_mem size) { |
|
|
|
if (size == 0) { |
|
|
|
if (block != NULL) { |
|
|
|
l_realloc(block, oldsize, size); |
|
|
|
l_free(block, oldsize); |
|
|
|
block = NULL; |
|
|
|
} |
|
|
|
} |
|
|
|