From 066e7da3cd0e3af438ff878a90ff1678363ce2a2 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Sat, 18 Jul 2020 12:50:35 +0200 Subject: 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) --- src/if_lua.c | 10 ++++++++-- src/version.c | 2 ++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/if_lua.c b/src/if_lua.c index f25c47b53..77f2afe54 100644 --- a/src/if_lua.c +++ b/src/if_lua.c @@ -626,8 +626,10 @@ luaV_totypval(lua_State *L, int pos, typval_T *tv) 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, typval_T *tv) } 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, typval_T *tv) 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 index d2cb29852..7a96e5806 100644 --- a/src/version.c +++ b/src/version.c @@ -754,6 +754,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1234, /**/ 1233, /**/ -- cgit v1.2.1