Mercurial > vim
changeset 32814:cf6d98955c64 v9.0.1721
patch 9.0.1721: Build failure on Windows with dynamic lua
Commit: https://github.com/vim/vim/commit/4112acae0816e3f64c082b1e773dd5f4a100685e
Author: zeertzjq <zeertzjq@outlook.com>
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 <cb@256bit.org>
Co-authored-by: zeertzjq <zeertzjq@outlook.com>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Wed, 16 Aug 2023 20:51:33 +0200 |
parents | ed0a14996071 |
children | fb376df77503 |
files | src/if_lua.c src/version.c |
diffstat | 2 files changed, 22 insertions(+), 21 deletions(-) [+] |
line wrap: on
line diff
--- 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 =======