Module Name: src Committed By: nikita Date: Mon Apr 17 20:37:43 UTC 2023
Modified Files: src/external/mit/lua/dist/src: lvm.c Log Message: lua: apply upstream bugfix for "Wrong line in error message for arithmetic errors." It also causes 'L->top' to be wrong when the error happens, triggering an 'assert'. To generate a diff of this commit: cvs rdiff -u -r1.16 -r1.17 src/external/mit/lua/dist/src/lvm.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/external/mit/lua/dist/src/lvm.c diff -u src/external/mit/lua/dist/src/lvm.c:1.16 src/external/mit/lua/dist/src/lvm.c:1.17 --- src/external/mit/lua/dist/src/lvm.c:1.16 Mon Apr 17 19:35:36 2023 +++ src/external/mit/lua/dist/src/lvm.c Mon Apr 17 20:37:43 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: lvm.c,v 1.16 2023/04/17 19:35:36 nikita Exp $ */ +/* $NetBSD: lvm.c,v 1.17 2023/04/17 20:37:43 nikita Exp $ */ /* ** Id: lvm.c @@ -1467,6 +1467,7 @@ void luaV_execute (lua_State *L, CallInf vmbreak; } vmcase(OP_MODK) { + savestate(L, ci); /* in case of division by 0 */ op_arithK(L, luaV_mod, luaV_modf); vmbreak; } @@ -1481,6 +1482,7 @@ void luaV_execute (lua_State *L, CallInf } #endif /* _KERNEL */ vmcase(OP_IDIVK) { + savestate(L, ci); /* in case of division by 0 */ op_arithK(L, luaV_idiv, luai_numidiv); vmbreak; } @@ -1527,6 +1529,7 @@ void luaV_execute (lua_State *L, CallInf vmbreak; } vmcase(OP_MOD) { + savestate(L, ci); /* in case of division by 0 */ op_arith(L, luaV_mod, luaV_modf); vmbreak; } @@ -1541,6 +1544,7 @@ void luaV_execute (lua_State *L, CallInf } #endif /* _KERNEL */ vmcase(OP_IDIV) { /* floor division */ + savestate(L, ci); /* in case of division by 0 */ op_arith(L, luaV_idiv, luai_numidiv); vmbreak; }