24 lines
891 B
Plaintext
24 lines
891 B
Plaintext
diff --git a/deps/lua/src/lparser.c b/deps/lua/src/lparser.c
|
|
index dda7488dcad..ee7d90c90d7 100644
|
|
--- deps/lua/src/lparser.c
|
|
+++ deps/lua/src/lparser.c
|
|
@@ -384,13 +384,17 @@ Proto *luaY_parser (lua_State *L, ZIO *z, Mbuffer *buff, const char *name) {
|
|
struct LexState lexstate;
|
|
struct FuncState funcstate;
|
|
lexstate.buff = buff;
|
|
- luaX_setinput(L, &lexstate, z, luaS_new(L, name));
|
|
+ TString *tname = luaS_new(L, name);
|
|
+ setsvalue2s(L, L->top, tname);
|
|
+ incr_top(L);
|
|
+ luaX_setinput(L, &lexstate, z, tname);
|
|
open_func(&lexstate, &funcstate);
|
|
funcstate.f->is_vararg = VARARG_ISVARARG; /* main func. is always vararg */
|
|
luaX_next(&lexstate); /* read first token */
|
|
chunk(&lexstate);
|
|
check(&lexstate, TK_EOS);
|
|
close_func(&lexstate);
|
|
+ --L->top;
|
|
lua_assert(funcstate.prev == NULL);
|
|
lua_assert(funcstate.f->nups == 0);
|
|
lua_assert(lexstate.fs == NULL);
|