]> granicus.if.org Git - libevent/commitdiff
r15341@tombo: nickm | 2008-04-29 14:09:50 -0400
authorNick Mathewson <nickm@torproject.org>
Tue, 29 Apr 2008 18:11:23 +0000 (18:11 +0000)
committerNick Mathewson <nickm@torproject.org>
Tue, 29 Apr 2008 18:11:23 +0000 (18:11 +0000)
 Use internal implementation for evutil_timercmp() everywhere, to avoid bugs when the platform timercmp() has never heard of <= or >=.  Also, replace timercmp() usage in min_heap.c with call to evutil_timercmp().

svn:r744

ChangeLog
include/event2/util.h
min_heap.h

index db68036401e7b7b6125f4c01f460da730a5fcac6..384a278641858a5d6504b2f1fbe06655ba972ef2 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -77,6 +77,8 @@ Changes in current version:
  o provide bufferevent_input and bufferevent_output without requiring knowledge of the structure
  o introduce bufferevent_setcb and bufferevent_setfd to allow better manipulation of bufferevents
  o convert evhttp_connection to use bufferevents.
+ o use libevent's internal timercmp on all platforms, to avoid bugs on old platforms where timercmp(a,b,<=) is buggy.
+
        
 Changes in 1.4.0:
  o allow \r or \n individually to separate HTTP headers instead of the standard "\r\n"; from Charles Kerr.
index 8877876738b3aaa9c0c524afd8d832aa8321df04..e88654c92be83c951c71c228197e076db00346cf 100644 (file)
@@ -159,14 +159,10 @@ int evutil_make_socket_nonblocking(evutil_socket_t sock);
 #define        evutil_timerclear(tvp)  (tvp)->tv_sec = (tvp)->tv_usec = 0
 #endif
 
-#ifdef _EVENT_HAVE_TIMERCMP
-#define evutil_timercmp(tvp, uvp, cmp) timercmp((tvp), (uvp), cmp)
-#else
 #define        evutil_timercmp(tvp, uvp, cmp)                                                  \
        (((tvp)->tv_sec == (uvp)->tv_sec) ?                                                     \
         ((tvp)->tv_usec cmp (uvp)->tv_usec) :                                          \
         ((tvp)->tv_sec cmp (uvp)->tv_sec))
-#endif
 
 #ifdef _EVENT_HAVE_TIMERISSET
 #define evutil_timerisset(tvp) timerisset(tvp)
index e6fb6b341b9ab7f1f1587a201e6f5cd7a88ef015..ac0ea674452560c1cea9c16859129934eee1c56f 100644 (file)
@@ -28,6 +28,7 @@
 #define _MIN_HEAP_H_
 
 #include "event2/event.h"
+#include "event2/util.h"
 
 typedef struct min_heap
 {
@@ -51,7 +52,7 @@ static inline void           min_heap_shift_down_(min_heap_t* s, unsigned hole_i
 
 int min_heap_elem_greater(struct event *a, struct event *b)
 {
-    return timercmp(&a->ev_timeout, &b->ev_timeout, >);
+    return evutil_timercmp(&a->ev_timeout, &b->ev_timeout, >);
 }
 
 void min_heap_ctor(min_heap_t* s) { s->p = 0; s->n = 0; s->a = 0; }