X-Git-Url: https://git.llucax.com/software/libev.git/blobdiff_plain/614930116ff2c76f9954eee0cf4c5194ee4204e0..c56a8061de2b5b4b9760ed49d4600bf40991b797:/ev%20%20.h/software/libev.git/blobdiff_plain/614930116ff2c76f9954eee0cf4c5194ee4204e0..c56a8061de2b5b4b9760ed49d4600bf40991b797:/ev++.h?ds=sidebyside diff --git a/ev++.h b/ev++.h index d7b4502..604340e 100644 --- a/ev++.h +++ b/ev++.h @@ -22,9 +22,9 @@ namespace ev { ev_init (this, 0); } - void set_ (void *object, void (*cb)(EV_P_ ev_watcher *w, int revents)) + void set_ (void *data, void (*cb)(EV_P_ ev_watcher *w, int revents)) { - this->data = object; + this->data = data; ev_set_cb (static_cast(this), cb); } @@ -37,9 +37,8 @@ namespace ev { template static void method_thunk (EV_P_ ev_watcher *w, int revents) { - watcher *self = static_cast(w); - K *obj = static_cast(self->data); - (obj->*method) (*self, revents); + K *obj = static_cast(w->data); + (obj->*method) (*static_cast(w), revents); } template @@ -51,22 +50,20 @@ namespace ev { template static void const_method_thunk (EV_P_ ev_watcher *w, int revents) { - watcher *self = static_cast(w); - K *obj = static_cast(self->data); - (obj->*method) (*self, revents); + K *obj = static_cast(w->data); + (static_cast(w->data)->*method) (*static_cast(w), revents); } template - void set () + void set (void *data = 0) { - set_ (0, function_thunk); + set_ (data, function_thunk); } template static void function_thunk (EV_P_ ev_watcher *w, int revents) { - watcher *self = static_cast(w); - function (*self, revents); + function (*static_cast(w), revents); } void operator ()(int events = EV_UNDEF)