diff options
author | pixel <pixel> | 2007-07-27 10:05:52 +0000 |
---|---|---|
committer | pixel <pixel> | 2007-07-27 10:05:52 +0000 |
commit | 6c1ab7da376ae7f78a075dda5c5be0dabce20931 (patch) | |
tree | bc44e447c450c96140cf6b63c39a37afa8ba61fb /lib/lua/includes/lmem.h | |
parent | a68385b1043a2041390f65ce5cf9ed434af5e95d (diff) |
Upgrading to Lua-5.1.2
Diffstat (limited to 'lib/lua/includes/lmem.h')
-rw-r--r-- | lib/lua/includes/lmem.h | 39 |
1 files changed, 22 insertions, 17 deletions
diff --git a/lib/lua/includes/lmem.h b/lib/lua/includes/lmem.h index 20bc584..4872cd1 100644 --- a/lib/lua/includes/lmem.h +++ b/lib/lua/includes/lmem.h @@ -1,5 +1,5 @@ /* -** $Id: lmem.h,v 1.4 2004-11-27 21:46:06 pixel Exp $ +** $Id: lmem.h,v 1.5 2007-07-27 10:05:53 pixel Exp $ ** Interface to Memory Manager ** See Copyright Notice in lua.h */ @@ -16,29 +16,34 @@ #define MEMERRMSG "not enough memory" -void *luaM_realloc (lua_State *L, void *oldblock, lu_mem oldsize, lu_mem size); +#define luaM_reallocv(L,b,on,n,e) \ + ((cast(size_t, (n)+1) <= MAX_SIZET/(e)) ? /* +1 to avoid warnings */ \ + luaM_realloc_(L, (b), (on)*(e), (n)*(e)) : \ + luaM_toobig(L)) -void *luaM_growaux (lua_State *L, void *block, int *size, int size_elem, - int limit, const char *errormsg); +#define luaM_freemem(L, b, s) luaM_realloc_(L, (b), (s), 0) +#define luaM_free(L, b) luaM_realloc_(L, (b), sizeof(*(b)), 0) +#define luaM_freearray(L, b, n, t) luaM_reallocv(L, (b), n, 0, sizeof(t)) -#define luaM_free(L, b, s) luaM_realloc(L, (b), (s), 0) -#define luaM_freelem(L, b) luaM_realloc(L, (b), sizeof(*(b)), 0) -#define luaM_freearray(L, b, n, t) luaM_realloc(L, (b), \ - cast(lu_mem, n)*cast(lu_mem, sizeof(t)), 0) - -#define luaM_malloc(L, t) luaM_realloc(L, NULL, 0, (t)) -#define luaM_new(L, t) cast(t *, luaM_malloc(L, sizeof(t))) -#define luaM_newvector(L, n,t) cast(t *, luaM_malloc(L, \ - cast(lu_mem, n)*cast(lu_mem, sizeof(t)))) +#define luaM_malloc(L,t) luaM_realloc_(L, NULL, 0, (t)) +#define luaM_new(L,t) cast(t *, luaM_malloc(L, sizeof(t))) +#define luaM_newvector(L,n,t) \ + cast(t *, luaM_reallocv(L, NULL, 0, n, sizeof(t))) #define luaM_growvector(L,v,nelems,size,t,limit,e) \ - if (((nelems)+1) > (size)) \ - ((v)=cast(t *, luaM_growaux(L,v,&(size),sizeof(t),limit,e))) + if ((nelems)+1 > (size)) \ + ((v)=cast(t *, luaM_growaux_(L,v,&(size),sizeof(t),limit,e))) #define luaM_reallocvector(L, v,oldn,n,t) \ - ((v)=cast(t *, luaM_realloc(L, v,cast(lu_mem, oldn)*cast(lu_mem, sizeof(t)), \ - cast(lu_mem, n)*cast(lu_mem, sizeof(t))))) + ((v)=cast(t *, luaM_reallocv(L, v, oldn, n, sizeof(t)))) + +LUAI_FUNC void *luaM_realloc_ (lua_State *L, void *block, size_t oldsize, + size_t size); +LUAI_FUNC void *luaM_toobig (lua_State *L); +LUAI_FUNC void *luaM_growaux_ (lua_State *L, void *block, int *size, + size_t size_elem, int limit, + const char *errormsg); #endif |