From 323da725778e1642caae85c66472e36729fdc3c6 Mon Sep 17 00:00:00 2001 From: Roberto Ierusalimschy Date: Tue, 5 Jun 2001 16:41:31 -0300 Subject: [PATCH] `weakmode' queries must have an explicit `?' --- lbaselib.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/lbaselib.c b/lbaselib.c index 8f2ad922..78fd6795 100644 --- a/lbaselib.c +++ b/lbaselib.c @@ -1,5 +1,5 @@ /* -** $Id: lbaselib.c,v 1.34 2001/04/11 18:39:37 roberto Exp roberto $ +** $Id: lbaselib.c,v 1.35 2001/04/23 16:35:45 roberto Exp roberto $ ** Basic library ** See Copyright Notice in lua.h */ @@ -170,9 +170,9 @@ static int luaB_settag (lua_State *L) { } static int luaB_weakmode (lua_State *L) { - const char *mode = luaL_opt_string(L, 2, NULL); + const char *mode = luaL_check_string(L, 2); luaL_checktype(L, 1, LUA_TTABLE); - if (mode == NULL) { + if (*mode == l_c('?')) { char buff[3]; char *s = buff; int imode = lua_getweakmode(L, 1); @@ -184,11 +184,11 @@ static int luaB_weakmode (lua_State *L) { } else { int imode = 0; - lua_pushvalue(L, 1); /* push table */ if (strchr(mode, l_c('k'))) imode |= LUA_WEAK_KEY; if (strchr(mode, l_c('v'))) imode |= LUA_WEAK_VALUE; + lua_pushvalue(L, 1); /* push table */ lua_setweakmode(L, imode); - return 1; + return 1; /* return the table */ } }