]> git.tdb.fi Git - libs/core.git/blobdiff - source/io/eventdispatcher.cpp
Check that objects still exist when dispatching events to them
[libs/core.git] / source / io / eventdispatcher.cpp
index 47aafa52818eacf85fbd815c17db31697314255a..49b28ac78bf436997f74d2d8fecb740aebf47fb5 100644 (file)
@@ -63,9 +63,10 @@ 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);
+       const vector<Poller::PolledObject> &result = poller.get_result();
+       for(vector<Poller::PolledObject>::const_iterator i=result.begin(); i!=result.end(); ++i)
+               if(objects.count(Slot(*this, *i->object)))
+                       i->object->event(i->events);
 }