Browse Source

'loadin' should not check whether upvalue is called '_ENV',

because its name may be unknown when there is no debug information.
pull/9/head
Roberto Ierusalimschy 14 years ago
parent
commit
a289a62717
  1. 8
      lbaselib.c

8
lbaselib.c

@ -1,5 +1,5 @@
/*
** $Id: lbaselib.c,v 1.248 2010/09/03 14:14:01 roberto Exp roberto $
** $Id: lbaselib.c,v 1.249 2010/09/07 19:21:39 roberto Exp roberto $
** Basic library
** See Copyright Notice in lua.h
*/
@ -333,11 +333,9 @@ static int luaB_loadin (lua_State *L) {
luaL_checkany(L, 1);
n = luaB_load_aux(L, 2);
if (n == 1) { /* success? */
const char *name;
lua_pushvalue(L, 1); /* environment for loaded function */
name = lua_setupvalue(L, -2, 1);
if (name == NULL || strcmp(name, LUA_ENV) != 0)
luaL_error(L, "loaded chunk does not have environment upvalue");
if (lua_setupvalue(L, -2, 1) == NULL)
luaL_error(L, "loaded chunk does not have an upvalue");
}
return n;
}

Loading…
Cancel
Save