int EventDispatcherBinder::hasEventListener(lua_State* L) { StackChecker checker(L, "EventDispatcherBinder::hasEventListener", 1); Binder binder(L); EventDispatcher* eventDispatcher = static_cast<EventDispatcher*>(binder.getInstance("EventDispatcher")); luaL_checktype(L, 2, LUA_TSTRING); if (eventDispatcher->data(&key_map) == NULL) { lua_pushboolean(L, 0); } else { EventBinderMap& map = *static_cast<EventBinderMap*>(eventDispatcher->data(&key_map)); const char* event = lua_tostring(L, 2); int eventid = StringId::instance().id(event); const std::vector<CppLuaBridge*>& bridges = map[eventid]; lua_pushboolean(L, bridges.empty() ? 0 : 1); } return 1; }