Hi John,

I've been looking into using twoface ABI mapper
(http://corsix.github.io/twoface/) to run ZeroBrane Studio on top of
Lua 5.2 without recompiling wxlua and luasocket (both are compiled for
Lua 5.1). For those not familiar with it, it allows to run Lua 5.2
engine with modules compiled for Lua 5.1 without any changes to those
modules. In my case, I use it with ZBS that is compiled for Lua 5.1
and can make it run with Lua 5.2 by replacing lua51.dll with a
different one (and adding lua52.dll).

I have been able to run it with wxlua, but I ended up patching wxlua
in one place. For some reason when I ran it originally, I was getting
"wxLua: wxEvtHandler::Connect() in wxLuaEventCallback::OnEvent(),
callback function is not a Lua function." messages in more or less
random places. This error comes from an event handler check in
wxlcallb.cpp and it appears to be only active for Lua 5.1:

#if LUA_VERSION_NUM < 502
        // lua_setfenv() is not in Lua 5.2 nor can you set an env for
a function anymore
        wxlState.GetGlobals();
        if (wxlState.lua_SetFenv(-2) != 0)
#endif // LUA_VERSION_NUM < 502
        {
            // Don't track the wxEvent since we don't own it and tracking it
            // causes clashes in the object registry table since many can be
            // created and deleted and the mem address is resused by C++.
            wxlState.wxluaT_PushUserDataType(event, event_wxl_type, false);
            wxlState.LuaPCall(1, 0); // one input no returns
        }
#if LUA_VERSION_NUM < 502
        else
            wxlState.wxlua_Error("wxLua: wxEvtHandler::Connect() in
wxLuaEventCallback::OnEvent(), callback function is not a Lua
function.");
#endif // LUA_VERSION_NUM < 502

I have never seen this error with 5.1 and am not sure what the purpose
of it is. Given that it doesn't even run for Lua 5.2, I completely
disabled this check and everything appears to be working as expected.

Is there any reason for this check (especially given that it behaves
differently for lua 5.1 and 5.2) and is it possible to remove/disable
it?

Paul.

------------------------------------------------------------------------------
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk
_______________________________________________
wxlua-users mailing list
wxlua-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wxlua-users

Reply via email to