#include <stdexcept>
+#include <msp/core/algorithm.h>
#include "eventobject.h"
#include "poll.h"
#include "poll_platform.h"
if(ev)
obj.get_event_handle();
- for(vector<PolledObject>::iterator i=objects.begin(); i!=objects.end(); ++i)
- if(i->object==&obj)
+ auto i = find_member(objects, &obj, &PolledObject::object);
+ if(i!=objects.end())
+ {
+ if(ev)
+ i->events = ev;
+ else
{
- if(ev)
- i->events = ev;
- else
- {
- *i = objects.back();
- objects.pop_back();
- objs_changed = true;
- }
- events_changed = true;
- return;
+ *i = objects.back();
+ objects.pop_back();
+ objs_changed = true;
}
+ events_changed = true;
+ return;
+ }
if(!ev)
return;