From dcf0c2769f7e2cb99dbbdbb5538faceb5fe3b519 Mon Sep 17 00:00:00 2001
From: Marko Lindqvist <cazfi74@gmail.com>
Date: Fri, 6 Sep 2024 17:53:48 +0300
Subject: [PATCH 14/14] Apply patch 2 for lua-5.4.7

See RM #761

Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
---
 dependencies/lua-5.4/Version.txt | 4 +++-
 dependencies/lua-5.4/src/lcode.c | 3 ++-
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/dependencies/lua-5.4/Version.txt b/dependencies/lua-5.4/Version.txt
index 02c338c5fb..6a2d197959 100644
--- a/dependencies/lua-5.4/Version.txt
+++ b/dependencies/lua-5.4/Version.txt
@@ -2,7 +2,9 @@ Sources here are from lua-5.4.7
 (http://www.lua.org/ftp/lua-5.4.7.tar.gz)
 
 Upstream bug fixes from https://www.lua.org/bugs.html applied:
--
+2
+Upstream bug fixes not applicable to our tree:
+1
 
 Not entire lua distribution directory hierarchy is included here, and
 some files needed for Freeciv usage have been added.
diff --git a/dependencies/lua-5.4/src/lcode.c b/dependencies/lua-5.4/src/lcode.c
index 87616140eb..3f78370c6e 100644
--- a/dependencies/lua-5.4/src/lcode.c
+++ b/dependencies/lua-5.4/src/lcode.c
@@ -35,6 +35,7 @@
 #define MAXREGS		255
 
 
+/* (note that expressions VJMP also have jumps.) */
 #define hasjumps(e)	((e)->t != (e)->f)
 
 
@@ -985,7 +986,7 @@ void luaK_exp2anyregup (FuncState *fs, expdesc *e) {
 ** or it is a constant.
 */
 void luaK_exp2val (FuncState *fs, expdesc *e) {
-  if (hasjumps(e))
+  if (e->k == VJMP || hasjumps(e))
     luaK_exp2anyreg(fs, e);
   else
     luaK_dischargevars(fs, e);
-- 
2.45.2

