From 563b1f570400828dafa76bfae4a3b0b1eb9721a7 Mon Sep 17 00:00:00 2001 From: Roberto Ierusalimschy Date: Thu, 26 Oct 2000 17:04:22 -0200 Subject: new way to ensure uniqueness of registry keys --- ldblib.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/ldblib.c b/ldblib.c index e133fac3..02dca507 100644 --- a/ldblib.c +++ b/ldblib.c @@ -1,5 +1,5 @@ /* -** $Id: ldblib.c,v 1.24 2000/10/24 19:12:06 roberto Exp roberto $ +** $Id: ldblib.c,v 1.25 2000/10/26 18:44:26 roberto Exp roberto $ ** Interface from Lua to its debug API ** See Copyright Notice in lua.h */ @@ -110,13 +110,15 @@ static int setlocal (lua_State *L) { -#define KEY_CALLHOOK "lua.dblib.callhook" -#define KEY_LINEHOOK "lua.dblib.linehook" +/* dummy variables (to define unique addresses) */ +static char key1, key2; +#define KEY_CALLHOOK (&key1) +#define KEY_LINEHOOK (&key2) -static void hookf (lua_State *L, const char *key) { +static void hookf (lua_State *L, void *key) { lua_getregistry(L); - lua_pushstring(L, key); + lua_pushuserdata(L, key); lua_gettable(L, -2); if (lua_isfunction(L, -1)) { lua_pushvalue(L, 1); @@ -140,11 +142,11 @@ static void linef (lua_State *L, lua_Debug *ar) { } -static void sethook (lua_State *L, const char *key, lua_Hook hook, +static void sethook (lua_State *L, void *key, lua_Hook hook, lua_Hook (*sethookf)(lua_State * L, lua_Hook h)) { lua_settop(L, 1); lua_getregistry(L); - lua_pushstring(L, key); + lua_pushuserdata(L, key); if (lua_isnil(L, 1)) (*sethookf)(L, NULL); else if (lua_isfunction(L, 1)) -- cgit v1.2.3-55-g6feb