From 7d6b78ee7934a00fbc69ab04ba36aa420db8ba76 Mon Sep 17 00:00:00 2001 From: Roberto Ierusalimschy Date: Thu, 25 Feb 2016 16:41:54 -0300 Subject: [PATCH] in 'table.move', destination table can be source table even if given as an explicit extra argument --- ltablib.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ltablib.c b/ltablib.c index ace60547..588bf40d 100644 --- a/ltablib.c +++ b/ltablib.c @@ -1,5 +1,5 @@ /* -** $Id: ltablib.c,v 1.91 2015/12/14 11:57:38 roberto Exp roberto $ +** $Id: ltablib.c,v 1.92 2016/02/08 12:55:19 roberto Exp roberto $ ** Library for Table Manipulation ** See Copyright Notice in lua.h */ @@ -139,7 +139,7 @@ static int tmove (lua_State *L) { n = e - f + 1; /* number of elements to move */ luaL_argcheck(L, t <= LUA_MAXINTEGER - n + 1, 4, "destination wrap around"); - if (t > e || t <= f || tt != 1) { + if (t > e || t <= f || (tt != 1 && !lua_compare(L, 1, tt, LUA_OPEQ))) { for (i = 0; i < n; i++) { lua_geti(L, 1, f + i); lua_seti(L, tt, t + i); @@ -152,7 +152,7 @@ static int tmove (lua_State *L) { } } } - lua_pushvalue(L, tt); /* return "to table" */ + lua_pushvalue(L, tt); /* return destination table */ return 1; }