From 4112acae0816e3f64c082b1e773dd5f4a100685e Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Wed, 16 Aug 2023 07:29:28 +0800 Subject: [PATCH] patch 9.0.1721: Build failure on Windows with dynamic lua Problem: Build failure on Windows with dynamic lua (after 9.0.1719) Solution: move definition further down in if_lua closes: #12811 closes: #12814 closes: #12818 Signed-off-by: Christian Brabandt Co-authored-by: zeertzjq --- src/if_lua.c | 41 ++++++++++++++++++++--------------------- src/version.c | 2 ++ 2 files changed, 22 insertions(+), 21 deletions(-) diff --git a/src/if_lua.c b/src/if_lua.c index 1eda2bf264..2041f5bccc 100644 --- a/src/if_lua.c +++ b/src/if_lua.c @@ -73,27 +73,6 @@ static const char LUA___CALL[] = "__call"; static const char LUAVIM_UDATA_CACHE[] = "luaV_udata_cache"; - static void LUAV_INLINE -luaV_getudata(lua_State *L, void *v) -{ - lua_pushlightuserdata(L, (void *) LUAVIM_UDATA_CACHE); - lua_rawget(L, LUA_REGISTRYINDEX); // now the cache table is at the top of the stack - lua_pushlightuserdata(L, v); - lua_rawget(L, -2); - lua_remove(L, -2); // remove the cache table from the stack -} - - static void LUAV_INLINE -luaV_setudata(lua_State *L, void *v) -{ - lua_pushlightuserdata(L, (void *) LUAVIM_UDATA_CACHE); - lua_rawget(L, LUA_REGISTRYINDEX); // cache table is at -1 - lua_pushlightuserdata(L, v); // ...now at -2 - lua_pushvalue(L, -3); // copy the userdata (cache at -3) - lua_rawset(L, -3); // consumes two stack items - lua_pop(L, 1); // and remove the cache table -} - #define luaV_getfield(L, s) \ lua_pushlightuserdata((L), (void *)(s)); \ lua_rawget((L), LUA_REGISTRYINDEX) @@ -511,6 +490,26 @@ luaL_typeerror(lua_State *L, int narg, const char *tname) } #endif + static LUAV_INLINE void +luaV_getudata(lua_State *L, void *v) +{ + lua_pushlightuserdata(L, (void *) LUAVIM_UDATA_CACHE); + lua_rawget(L, LUA_REGISTRYINDEX); // now the cache table is at the top of the stack + lua_pushlightuserdata(L, v); + lua_rawget(L, -2); + lua_remove(L, -2); // remove the cache table from the stack +} + + static LUAV_INLINE void +luaV_setudata(lua_State *L, void *v) +{ + lua_pushlightuserdata(L, (void *) LUAVIM_UDATA_CACHE); + lua_rawget(L, LUA_REGISTRYINDEX); // cache table is at -1 + lua_pushlightuserdata(L, v); // ...now at -2 + lua_pushvalue(L, -3); // copy the userdata (cache at -3) + lua_rawset(L, -3); // consumes two stack items + lua_pop(L, 1); // and remove the cache table +} // ======= Internal ======= diff --git a/src/version.c b/src/version.c index ae9bc87a20..c4098c2e70 100644 --- a/src/version.c +++ b/src/version.c @@ -695,6 +695,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1721, /**/ 1720, /**/