diff options
author | zeertzjq <zeertzjq@outlook.com> | 2023-08-16 07:29:28 +0800 |
---|---|---|
committer | Christian Brabandt <cb@256bit.org> | 2023-08-16 20:25:10 +0200 |
commit | 4112acae0816e3f64c082b1e773dd5f4a100685e (patch) | |
tree | 7ed4ea7d065fc65f5c297921714ed9b8863414ef /src/if_lua.c | |
parent | a456b12011569be91418bbf6277d844c67e05e79 (diff) |
patch 9.0.1721: Build failure on Windows with dynamic luav9.0.1721
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>
Diffstat (limited to 'src/if_lua.c')
-rw-r--r-- | src/if_lua.c | 41 |
1 files changed, 20 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 ======= |