Hello Libev,
The attached patch fixes broken strict aliasing in ev_timer_set()
and ev_periodic_at() macros.
--
Best regards,
Denis mailto:[email protected]
Index: ev.h
===================================================================
RCS file: /schmorpforge/libev/ev.h,v
retrieving revision 1.131
diff -u -r1.131 ev.h
--- ev.h 18 Jan 2010 13:31:42 -0000 1.131
+++ ev.h 18 Feb 2010 14:58:20 -0000
@@ -580,7 +580,7 @@
} while (0)
#define ev_io_set(ev,fd_,events_) do { (ev)->fd = (fd_);
(ev)->events = (events_) | EV__IOFDSET; } while (0)
-#define ev_timer_set(ev,after_,repeat_) do { ((ev_watcher_time
*)(ev))->at = (after_); (ev)->repeat = (repeat_); } while (0)
+#define ev_timer_set(ev,after_,repeat_) do { ((ev_watcher_time *)(void
*)(ev))->at = (after_); (ev)->repeat = (repeat_); } while (0)
#define ev_periodic_set(ev,ofs_,ival_,rcb_) do { (ev)->offset = (ofs_);
(ev)->interval = (ival_); (ev)->reschedule_cb = (rcb_); } while (0)
#define ev_signal_set(ev,signum_) do { (ev)->signum = (signum_); }
while (0)
#define ev_child_set(ev,pid_,trace_) do { (ev)->pid = (pid_);
(ev)->flags = !!(trace_); } while (0)
@@ -618,7 +618,7 @@
# define ev_set_priority(ev,pri) ( (ev_watcher *)(void
*)(ev))->priority = (pri)
#endif
-#define ev_periodic_at(ev) (+((ev_watcher_time *)(ev))->at)
+#define ev_periodic_at(ev) (+((ev_watcher_time *)(void
*)(ev))->at)
#ifndef ev_set_cb
# define ev_set_cb(ev,cb_) ev_cb (ev) = (cb_)
_______________________________________________
libev mailing list
[email protected]
http://lists.schmorp.de/cgi-bin/mailman/listinfo/libev