static void _signal_trampoline(PropertyMap &map, const std::string &k, LuaRef ref, lua_State *l) { ref.PushCopyToStack(); lua_pushlstring(l, k.c_str(), k.size()); map.PushLuaTable(); lua_pushvalue(l, -2); lua_rawget(l, -2); lua_remove(l, -2); pi_lua_protected_call(l, 2, 0); }
bool LuaRef::operator==(const LuaRef & ref) const { if (ref.m_lua != m_lua) return false; if (ref.m_id == m_id) return true; ref.PushCopyToStack(); PushCopyToStack(); bool return_value = lua_compare(m_lua, -1, -2, LUA_OPEQ); lua_pop(m_lua, 2); return return_value; }