From 23e6bac8a0bbb9e5df43cbc0b7634b6d1395b0ff Mon Sep 17 00:00:00 2001 From: Roberto Ierusalimschy Date: Fri, 22 Mar 2019 13:37:17 -0300 Subject: Keep correct type for immediate operands in comparisons When calling metamethods for things like 'a < 3.0', which generates the opcode OP_LTI, the C register tells that the operand was converted to an integer, so that it can be corrected to float when calling a metamethod. This commit also includes some other stuff: - file 'onelua.c' added to the project - opcode OP_PREPVARARG renamed to OP_VARARGPREP - comparison opcodes rewritten through macros --- lparser.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lparser.c') diff --git a/lparser.c b/lparser.c index 8ffd9742..4c2ddbfe 100644 --- a/lparser.c +++ b/lparser.c @@ -817,7 +817,7 @@ static void constructor (LexState *ls, expdesc *t) { static void setvararg (FuncState *fs, int nparams) { fs->f->is_vararg = 1; - luaK_codeABC(fs, OP_PREPVARARG, nparams, 0, 0); + luaK_codeABC(fs, OP_VARARGPREP, nparams, 0, 0); } -- cgit v1.2.3-55-g6feb