From 03bab90303270534ba6a415b5379d4659757082d Mon Sep 17 00:00:00 2001 From: Roberto Ierusalimschy Date: Mon, 20 Oct 2003 10:25:23 -0200 Subject: new function `lua_getallocf' to retrieve allocation function and data --- lapi.c | 10 +++++++++- ltests.c | 5 ++++- lua.h | 4 +++- 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/lapi.c b/lapi.c index 2e5366ba..80144154 100644 --- a/lapi.c +++ b/lapi.c @@ -1,5 +1,5 @@ /* -** $Id: lapi.c,v 1.246 2003/10/10 12:57:55 roberto Exp roberto $ +** $Id: lapi.c,v 1.247 2003/10/10 13:29:08 roberto Exp roberto $ ** Lua API ** See Copyright Notice in lua.h */ @@ -882,6 +882,12 @@ LUA_API void lua_concat (lua_State *L, int n) { } +LUA_API lua_Alloc lua_getallocf (lua_State *L, void **ud) { + *ud = G(L)->ud; + return G(L)->realloc; +} + + LUA_API void *lua_newuserdata (lua_State *L, size_t size) { Udata *u; lua_lock(L); @@ -894,6 +900,8 @@ LUA_API void *lua_newuserdata (lua_State *L, size_t size) { } + + static const char *aux_upvalue (lua_State *L, int funcindex, int n, TObject **val) { Closure *f; diff --git a/ltests.c b/ltests.c index 05d2ab16..4d8a60f4 100644 --- a/ltests.c +++ b/ltests.c @@ -1,5 +1,5 @@ /* -** $Id: ltests.c,v 1.165 2003/10/07 20:13:41 roberto Exp roberto $ +** $Id: ltests.c,v 1.166 2003/10/10 13:29:08 roberto Exp roberto $ ** Internal Module for Debugging of the Lua Implementation ** See Copyright Notice in lua.h */ @@ -836,6 +836,9 @@ static int l_panic (lua_State *L) { int luaB_opentests (lua_State *L) { + void *ud; + lua_assert(lua_getallocf(L, &ud) == debug_realloc); + lua_assert(ud == cast(void *, &memcontrol)); lua_atpanic(L, l_panic); lua_userstateopen(L); /* init lock */ lua_state = L; /* keep first state to be opened */ diff --git a/lua.h b/lua.h index 04f83578..ee932062 100644 --- a/lua.h +++ b/lua.h @@ -1,5 +1,5 @@ /* -** $Id: lua.h,v 1.181 2003/10/10 12:57:55 roberto Exp roberto $ +** $Id: lua.h,v 1.182 2003/10/10 13:29:08 roberto Exp roberto $ ** Lua - An Extensible Extension Language ** Tecgraf: Computer Graphics Technology Group, PUC-Rio, Brazil ** http://www.lua.org mailto:info@lua.org @@ -239,6 +239,8 @@ LUA_API int lua_next (lua_State *L, int idx); LUA_API void lua_concat (lua_State *L, int n); +LUA_API lua_Alloc lua_getallocf (lua_State *L, void **ud); + /* -- cgit v1.2.3-55-g6feb