# HG changeset patch # User Bram Moolenaar # Date 1595070004 -7200 # Node ID f9d87868d77f2c41da014eeba7b6fbe3db55ccf4 # Parent 69e14aeb969f5e715cded12d98e3faa30ad054c8 patch 8.2.1234: Lua build problem with old compiler Commit: https://github.com/vim/vim/commit/066e7da3cd0e3af438ff878a90ff1678363ce2a2 Author: Bram Moolenaar 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) diff --git a/src/if_lua.c b/src/if_lua.c --- 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); diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -755,6 +755,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1234, +/**/ 1233, /**/ 1232,