X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fio%2Feventdispatcher.cpp;h=9c233ee6a2a0cae226b972179d2519a0a51fc794;hb=9b38e20254913629a0db40e8eb8e1c42e1728e41;hp=47aafa52818eacf85fbd815c17db31697314255a;hpb=df6fc46950e15bb30a92368f34dc2005393b0e5b;p=libs%2Fcore.git diff --git a/source/io/eventdispatcher.cpp b/source/io/eventdispatcher.cpp index 47aafa5..9c233ee 100644 --- a/source/io/eventdispatcher.cpp +++ b/source/io/eventdispatcher.cpp @@ -12,7 +12,7 @@ namespace IO { void EventDispatcher::add(EventObject &obj) { Slot slot(*this, obj); - set::iterator i = objects.find(slot); + auto i = objects.find(slot); if(i==objects.end()) { i = objects.insert(slot).first; @@ -25,7 +25,7 @@ void EventDispatcher::add(EventObject &obj) void EventDispatcher::remove(EventObject &obj) { - set::iterator i = objects.find(Slot(*this, obj)); + auto i = objects.find(Slot(*this, obj)); if(i!=objects.end()) { objects.erase(i); @@ -63,9 +63,9 @@ void EventDispatcher::tick(const Time::Timer &timer) void EventDispatcher::dispatch() { - const Poller::SlotList &result = poller.get_result(); - for(Poller::SlotList::const_iterator i=result.begin(); i!=result.end(); ++i) - i->object->event(i->events); + for(const Poller::PolledObject &po: poller.get_result()) + if(objects.count(Slot(*this, *po.object))) + po.object->event(po.events); }