Mercurial > vim
changeset 21367:f9d87868d77f v8.2.1234
patch 8.2.1234: Lua build problem with old compiler
Commit: https://github.com/vim/vim/commit/066e7da3cd0e3af438ff878a90ff1678363ce2a2
Author: Bram Moolenaar <Bram@vim.org>
Date: Sat Jul 18 12:50:35 2020 +0200
patch 8.2.1234: Lua build problem with old compiler
Problem: Lua build problem with old compiler.
Solution: Move declarations to start of the block. (Taro Muraoka,
closes #6477)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sat, 18 Jul 2020 13:00:04 +0200 |
parents | 69e14aeb969f |
children | f96475687162 |
files | src/if_lua.c src/version.c |
diffstat | 2 files changed, 10 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/if_lua.c +++ b/src/if_lua.c @@ -626,8 +626,10 @@ luaV_totypval(lua_State *L, int pos, typ case LUA_TFUNCTION: { char_u *name; + luaV_CFuncState *state; + lua_pushvalue(L, pos); - luaV_CFuncState *state = ALLOC_CLEAR_ONE(luaV_CFuncState); + state = ALLOC_CLEAR_ONE(luaV_CFuncState); state->lua_funcref = luaL_ref(L, LUA_REGISTRYINDEX); state->L = L; state->lua_tableref = LUA_NOREF; @@ -639,14 +641,17 @@ luaV_totypval(lua_State *L, int pos, typ } case LUA_TTABLE: { + int lua_tableref; + lua_pushvalue(L, pos); - int lua_tableref = luaL_ref(L, LUA_REGISTRYINDEX); + lua_tableref = luaL_ref(L, LUA_REGISTRYINDEX); if (lua_getmetatable(L, pos)) { lua_getfield(L, -1, LUA___CALL); if (lua_isfunction(L, -1)) { char_u *name; int lua_funcref = luaL_ref(L, LUA_REGISTRYINDEX); luaV_CFuncState *state = ALLOC_CLEAR_ONE(luaV_CFuncState); + state->lua_funcref = lua_funcref; state->L = L; state->lua_tableref = lua_tableref; @@ -703,6 +708,7 @@ luaV_totypval(lua_State *L, int pos, typ if (lua_rawequal(L, -1, -5)) { luaV_Funcref *f = (luaV_Funcref *) p; + func_ref(f->name); tv->v_type = VAR_FUNC; tv->vval.v_string = vim_strsave(f->name);