X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fio%2Feventdispatcher.cpp;h=9c233ee6a2a0cae226b972179d2519a0a51fc794;hb=9b38e20254913629a0db40e8eb8e1c42e1728e41;hp=f98474c227d4cc7e1fd8d1a2e03274a6f21c89d5;hpb=242a4a9abe1e1113b5eb39aa751aa054f696d7be;p=libs%2Fcore.git diff --git a/source/io/eventdispatcher.cpp b/source/io/eventdispatcher.cpp index f98474c..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); }