From 07db10813cb044252c18973688f63b5eac6a90a6 Mon Sep 17 00:00:00 2001 From: Roberto Ierusalimschy Date: Thu, 29 Jun 2017 12:38:41 -0300 Subject: 'OP_VARARG' has the vararg parameter as an operand --- lparser.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'lparser.c') diff --git a/lparser.c b/lparser.c index a8c77c44..1a0a4e51 100644 --- a/lparser.c +++ b/lparser.c @@ -1,5 +1,5 @@ /* -** $Id: lparser.c,v 2.160 2017/06/27 11:35:31 roberto Exp roberto $ +** $Id: lparser.c,v 2.161 2017/06/29 15:06:44 roberto Exp roberto $ ** Lua Parser ** See Copyright Notice in lua.h */ @@ -970,9 +970,10 @@ static void simpleexp (LexState *ls, expdesc *v) { } case TK_DOTS: { /* vararg */ FuncState *fs = ls->fs; + int lastparam = fs->f->numparams - 1; check_condition(ls, fs->f->is_vararg, "cannot use '...' outside a vararg function"); - init_exp(v, VVARARG, luaK_codeABC(fs, OP_VARARG, 0, 1, 0)); + init_exp(v, VVARARG, luaK_codeABC(fs, OP_VARARG, 0, 1, lastparam)); break; } case '{': { /* constructor */ -- cgit v1.2.3-55-g6feb