summaryrefslogtreecommitdiff
path: root/source/luametatex/source/luacore/lua54/src/lvm.c
diff options
context:
space:
mode:
authorHans Hagen <pragma@wxs.nl>2023-03-20 17:14:54 +0100
committerContext Git Mirror Bot <phg@phi-gamma.net>2023-03-20 17:14:54 +0100
commit97f560d2993c367fb84ef62eefbe90ca03c19ebc (patch)
tree2008bdbfc92d045d7451e655cc43945b84234868 /source/luametatex/source/luacore/lua54/src/lvm.c
parent250c5684b9ee44ac972db51f87289ef935182c53 (diff)
downloadcontext-97f560d2993c367fb84ef62eefbe90ca03c19ebc.tar.gz
2023-03-20 15:44:00
Diffstat (limited to 'source/luametatex/source/luacore/lua54/src/lvm.c')
-rw-r--r--source/luametatex/source/luacore/lua54/src/lvm.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/source/luametatex/source/luacore/lua54/src/lvm.c b/source/luametatex/source/luacore/lua54/src/lvm.c
index 2e84dc63c..8493a770c 100644
--- a/source/luametatex/source/luacore/lua54/src/lvm.c
+++ b/source/luametatex/source/luacore/lua54/src/lvm.c
@@ -1410,6 +1410,7 @@ void luaV_execute (lua_State *L, CallInfo *ci) {
vmbreak;
}
vmcase(OP_MODK) {
+ savestate(L, ci); /* in case of division by 0 */
op_arithK(L, luaV_mod, luaV_modf);
vmbreak;
}
@@ -1422,6 +1423,7 @@ void luaV_execute (lua_State *L, CallInfo *ci) {
vmbreak;
}
vmcase(OP_IDIVK) {
+ savestate(L, ci); /* in case of division by 0 */
op_arithK(L, luaV_idiv, luai_numidiv);
vmbreak;
}
@@ -1470,6 +1472,7 @@ void luaV_execute (lua_State *L, CallInfo *ci) {
vmbreak;
}
vmcase(OP_MOD) {
+ savestate(L, ci); /* in case of division by 0 */
op_arith(L, luaV_mod, luaV_modf);
vmbreak;
}
@@ -1482,6 +1485,7 @@ void luaV_execute (lua_State *L, CallInfo *ci) {
vmbreak;
}
vmcase(OP_IDIV) { /* floor division */
+ savestate(L, ci); /* in case of division by 0 */
op_arith(L, luaV_idiv, luai_numidiv);
vmbreak;
}