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
index f25c47b..77f2afe 100644
--- a/src/if_lua.c
+++ b/src/if_lua.c
@@ -626,8 +626,10 @@
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 @@
}
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 @@
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);