diff options
Diffstat (limited to 'util/ub_event_pluggable.c')
| -rw-r--r-- | util/ub_event_pluggable.c | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/util/ub_event_pluggable.c b/util/ub_event_pluggable.c index 5c517555e71b9..4a9451263b7ce 100644 --- a/util/ub_event_pluggable.c +++ b/util/ub_event_pluggable.c @@ -144,12 +144,10 @@ struct my_event { struct event ev; }; -#define AS_MY_EVENT_BASE(x) \ - (((union {struct ub_event_base* a; struct my_event_base* b;})x).b) -#define AS_MY_EVENT(x) \ - (((union {struct ub_event* a; struct my_event* b;})x).b) +#define AS_MY_EVENT_BASE(x) ((struct my_event_base*)x) +#define AS_MY_EVENT(x) ((struct my_event*)x) -const char* ub_event_get_version() +const char* ub_event_get_version(void) { return "pluggable-event"PACKAGE_VERSION; } @@ -597,7 +595,7 @@ ub_event_add(struct ub_event* ev, struct timeval* tv) int ub_event_del(struct ub_event* ev) { - if (ev->magic == UB_EVENT_MAGIC) { + if (ev && ev->magic == UB_EVENT_MAGIC) { fptr_ok(ev->vmt != &default_event_vmt || ev->vmt->del == my_event_del); return (*ev->vmt->del)(ev); @@ -620,7 +618,7 @@ ub_timer_add(struct ub_event* ev, struct ub_event_base* base, int ub_timer_del(struct ub_event* ev) { - if (ev->magic == UB_EVENT_MAGIC) { + if (ev && ev->magic == UB_EVENT_MAGIC) { fptr_ok(ev->vmt != &default_event_vmt || ev->vmt->del_timer == my_timer_del); return (*ev->vmt->del_timer)(ev); @@ -642,7 +640,7 @@ ub_signal_add(struct ub_event* ev, struct timeval* tv) int ub_signal_del(struct ub_event* ev) { - if (ev->magic == UB_EVENT_MAGIC) { + if (ev && ev->magic == UB_EVENT_MAGIC) { fptr_ok(ev->vmt != &default_event_vmt || ev->vmt->del_signal == my_signal_del); return (*ev->vmt->del_signal)(ev); @@ -653,7 +651,7 @@ ub_signal_del(struct ub_event* ev) void ub_winsock_unregister_wsaevent(struct ub_event* ev) { - if (ev->magic == UB_EVENT_MAGIC) { + if (ev && ev->magic == UB_EVENT_MAGIC) { fptr_ok(ev->vmt != &default_event_vmt || ev->vmt->winsock_unregister_wsaevent == my_winsock_unregister_wsaevent); |
