From fee690a3d1412860b19447b2b390d3521adae7c6 Mon Sep 17 00:00:00 2001 From: Mattes D Date: Thu, 7 May 2015 23:02:18 +0200 Subject: Fixed inter-plugin calls. When an inter-plugin call failed due to function not found, the server would maul the LuaState and "yield". Fixes #1959. --- src/Bindings/ManualBindings.cpp | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src/Bindings/ManualBindings.cpp') diff --git a/src/Bindings/ManualBindings.cpp b/src/Bindings/ManualBindings.cpp index 2fbff11d3..20042a780 100644 --- a/src/Bindings/ManualBindings.cpp +++ b/src/Bindings/ManualBindings.cpp @@ -1988,6 +1988,11 @@ static int tolua_cPluginManager_CallPlugin(lua_State * tolua_S) { return 0; } + if (Callback.m_NumReturns < 0) + { + // The call has failed, there are zero return values. Do NOT return negative number (Lua considers that a "yield") + return 0; + } return Callback.m_NumReturns; } -- cgit v1.2.3