]> git.llucax.com Git - software/libev.git/commitdiff
fucked up++ watchers again
authorroot <root>
Tue, 11 Dec 2007 03:18:33 +0000 (03:18 +0000)
committerroot <root>
Tue, 11 Dec 2007 03:18:33 +0000 (03:18 +0000)
ev++.h
ev.c

diff --git a/ev++.h b/ev++.h
index 71a3d52efdf309f4041c44ae8bfbb6959be51e09..604340e19d9e5a84f49dca6783478bfce2bd5abc 100644 (file)
--- a/ev++.h
+++ b/ev++.h
@@ -22,10 +22,10 @@ namespace ev {
       ev_init (this, 0);
     }
 
-    void set_ (void *data, void (*cb)(EV_P_ watcher *w, int revents))
+    void set_ (void *data, void (*cb)(EV_P_ ev_watcher *w, int revents))
     {
       this->data = data;
-      ev_set_cb (static_cast<watcher *>(this), cb);
+      ev_set_cb (static_cast<ev_watcher *>(this), cb);
     }
 
     template<class K, void (K::*method)(watcher &w, int)>
@@ -35,10 +35,10 @@ namespace ev {
     }
 
     template<class K, void (K::*method)(watcher &w, int)>
-    static void method_thunk (EV_P_ watcher *w, int revents)
+    static void method_thunk (EV_P_ ev_watcher *w, int revents)
     {
       K *obj = static_cast<K *>(w->data);
-      (obj->*method) (*w, revents);
+      (obj->*method) (*static_cast<watcher *>(w), revents);
     }
 
     template<class K, void (K::*method)(watcher &w, int) const>
@@ -48,10 +48,10 @@ namespace ev {
     }
 
     template<class K, void (K::*method)(watcher &w, int) const>
-    static void const_method_thunk (EV_P_ watcher *w, int revents)
+    static void const_method_thunk (EV_P_ ev_watcher *w, int revents)
     {
       K *obj = static_cast<K *>(w->data);
-      (obj->*method) (*w, revents);
+      (static_cast<K *>(w->data)->*method) (*static_cast<watcher *>(w), revents);
     }
 
     template<void (*function)(watcher &w, int)>
@@ -61,9 +61,9 @@ namespace ev {
     }
 
     template<void (*function)(watcher &w, int)>
-    static void function_thunk (EV_P_ watcher *w, int revents)
+    static void function_thunk (EV_P_ ev_watcher *w, int revents)
     {
-      function (*w, revents);
+      function (*static_cast<watcher *>(w), revents);
     }
 
     void operator ()(int events = EV_UNDEF)
diff --git a/ev.c b/ev.c
index 3fc528a251d1c61614516715667ac005aa477a6d..654821b2534ecf0ff2955ff002e23a80b32b7856 100644 (file)
--- a/ev.c
+++ b/ev.c
@@ -1233,7 +1233,7 @@ periodics_reify (EV_P)
       /* first reschedule or stop timer */
       if (w->reschedule_cb)
         {
-          ((WT)w)->at = w->reschedule_cb (w, ev_rt_now + 0.0001);
+          ((WT)w)->at = w->reschedule_cb (w, ev_rt_now + 0.0001220703125 /* 1/8192 */);
           assert (("ev_periodic reschedule callback returned time in the past", ((WT)w)->at > ev_rt_now));
           downheap ((WT *)periodics, periodiccnt, 0);
         }