fix arg error

This commit is contained in:
fesily 2024-02-20 22:53:28 +08:00
parent 3e78833b0a
commit 32d892111d
2 changed files with 5 additions and 2 deletions

View File

@ -89,7 +89,7 @@ LUALIB_API void luaL_openlibs(lua_State *L)
" end\n"
" return dump(f, strip)\n"
"end\n";
(luaL_loadstring(L, dump_fix) || lua_pcall(L, 0, 0, 0));
//(luaL_loadstring(L, dump_fix) || lua_pcall(L, 0, 0, 0));
#endif
#ifdef DO_LUA_INIT
handle_luainit(L);

View File

@ -1133,7 +1133,7 @@ static MSize var_lookup_(FuncState *fs, GCstr *name, ExpDesc *e, int first)
if ((int32_t)reg >= 0) { /* Local in this function? */
expr_init(e, VLOCAL, reg);
#if LUA_COMPAT_VARARG
if (!fs->need_vararg && fs->flags & PROTO_VARARG){
if (!fs->need_vararg && fs->flags & PROTO_VARARG && reg == 0){
if (name->len == (sizeof("arg") - 1) && strncmp(strdata(name), "arg", name->len) == 0){
fs->need_vararg = 1;
}
@ -2751,6 +2751,9 @@ static int parse_stmt(LexState *ls)
static void add_argstmt(LexState* ls)
{
//skip if/while/do-end body
if (ls->fs->bl->prev)
return;
ExpDesc e;
if (ls->fs->flags & PROTO_VARARG) {