# HG changeset patch # User Christian Brabandt # Date 1692211893 -7200 # Node ID cf6d98955c64493fe8ee4da83946a4e413b6cd4b # Parent ed0a1499607119e4bb7287c6516eab14aab01a67 patch 9.0.1721: Build failure on Windows with dynamic lua Commit: https://github.com/vim/vim/commit/4112acae0816e3f64c082b1e773dd5f4a100685e Author: zeertzjq Date: Wed Aug 16 07:29:28 2023 +0800 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 diff --git a/src/if_lua.c b/src/if_lua.c --- 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, c } #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 --- a/src/version.c +++ b/src/version.c @@ -696,6 +696,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1721, +/**/ 1720, /**/ 1719,