X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fio%2Feventdispatcher.cpp;h=9c233ee6a2a0cae226b972179d2519a0a51fc794;hb=9b38e20254913629a0db40e8eb8e1c42e1728e41;hp=550043f4cffdd99f47144a0af5a7e32686cabad1;hpb=292aed8e23ea543b089d5f2a73000de4640befe7;p=libs%2Fcore.git diff --git a/source/io/eventdispatcher.cpp b/source/io/eventdispatcher.cpp index 550043f..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 vector &result = poller.get_result(); - for(vector::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); }