From 8e8152fabdbc286d50af6cabb52d933ccce7da42 Mon Sep 17 00:00:00 2001 From: root <root> Date: Wed, 28 Nov 2007 17:32:24 +0000 Subject: fucking windows hates iso c, stupid microsoft lock-in strategy --- ev.3 | 15 ++++++++------- ev.c | 14 +++++++------- ev.h | 4 +--- ev.html | 15 ++++++++------- ev.pod | 13 +++++++------ 5 files changed, 31 insertions(+), 30 deletions(-) diff --git a/ev.3 b/ev.3 index 9aefdff..9313383 100644 --- a/ev.3 +++ b/ev.3 @@ -307,13 +307,14 @@ might be supported on the current system, you would need to look at recommended ones. .Sp See the description of \f(CW\*(C`ev_embed\*(C'\fR watchers for more info. -.IP "ev_set_allocator (void *(*cb)(void *ptr, size_t size))" 4 -.IX Item "ev_set_allocator (void *(*cb)(void *ptr, size_t size))" -Sets the allocation function to use (the prototype and semantics are -identical to the realloc C function). It is used to allocate and free -memory (no surprises here). If it returns zero when memory needs to be -allocated, the library might abort or take some potentially destructive -action. The default is your system realloc function. +.IP "ev_set_allocator (void *(*cb)(void *ptr, long size))" 4 +.IX Item "ev_set_allocator (void *(*cb)(void *ptr, long size))" +Sets the allocation function to use (the prototype is similar \- the +semantics is identical \- to the realloc C function). It is used to +allocate and free memory (no surprises here). If it returns zero when +memory needs to be allocated, the library might abort or take some +potentially destructive action. The default is your system realloc +function. .Sp You could override this function in high-availability programs to, say, free some memory if it cannot allocate memory, to use a special allocator, diff --git a/ev.c b/ev.c index f8b08f5..5383e2c 100644 --- a/ev.c +++ b/ev.c @@ -283,22 +283,22 @@ syserr (const char *msg) } } -static void *(*alloc)(void *ptr, size_t size) = realloc; +static void *(*alloc)(void *ptr, long size); void -ev_set_allocator (void *(*cb)(void *ptr, size_t size)) +ev_set_allocator (void *(*cb)(void *ptr, long size)) { alloc = cb; } inline_speed void * -ev_realloc (void *ptr, size_t size) +ev_realloc (void *ptr, long size) { - ptr = alloc (ptr, size); + ptr = alloc ? alloc (ptr, size) : realloc (ptr, size); if (!ptr && size) { - fprintf (stderr, "libev: cannot allocate %ld bytes, aborting.", (long)size); + fprintf (stderr, "libev: cannot allocate %ld bytes, aborting.", size); abort (); } @@ -326,12 +326,12 @@ typedef struct int events; } ANPENDING; +#if EV_USE_INOTIFY typedef struct { -#if EV_USE_INOTIFY WL head; -#endif } ANFS; +#endif #if EV_MULTIPLICITY diff --git a/ev.h b/ev.h index bd023a7..d9f558a 100644 --- a/ev.h +++ b/ev.h @@ -66,8 +66,6 @@ typedef double ev_tstamp; /*****************************************************************************/ -#include <stddef.h> /* for size_t */ - #if EV_STAT_ENABLE # include <sys/stat.h> #endif @@ -338,7 +336,7 @@ ev_tstamp ev_time (void); * or take some potentially destructive action. * The default is your system realloc function. */ -void ev_set_allocator (void *(*cb)(void *ptr, size_t size)); +void ev_set_allocator (void *(*cb)(void *ptr, long size)); /* set the callback function to call on a * retryable syscall error diff --git a/ev.html b/ev.html index 4c6249e..c153869 100644 --- a/ev.html +++ b/ev.html @@ -6,7 +6,7 @@ <meta name="description" content="Pod documentation for libev" /> <meta name="inputfile" content="<standard input>" /> <meta name="outputfile" content="<standard output>" /> - <meta name="created" content="Wed Nov 28 12:31:29 2007" /> + <meta name="created" content="Wed Nov 28 18:32:11 2007" /> <meta name="generator" content="Pod::Xhtml 1.57" /> <link rel="stylesheet" href="http://res.tst.eu/pod.css"/></head> <body> @@ -232,13 +232,14 @@ might be supported on the current system, you would need to look at recommended ones.</p> <p>See the description of <code>ev_embed</code> watchers for more info.</p> </dd> - <dt>ev_set_allocator (void *(*cb)(void *ptr, size_t size))</dt> + <dt>ev_set_allocator (void *(*cb)(void *ptr, long size))</dt> <dd> - <p>Sets the allocation function to use (the prototype and semantics are -identical to the realloc C function). It is used to allocate and free -memory (no surprises here). If it returns zero when memory needs to be -allocated, the library might abort or take some potentially destructive -action. The default is your system realloc function.</p> + <p>Sets the allocation function to use (the prototype is similar - the +semantics is identical - to the realloc C function). It is used to +allocate and free memory (no surprises here). If it returns zero when +memory needs to be allocated, the library might abort or take some +potentially destructive action. The default is your system realloc +function.</p> <p>You could override this function in high-availability programs to, say, free some memory if it cannot allocate memory, to use a special allocator, or even to sleep a while and retry until some memory is available.</p> diff --git a/ev.pod b/ev.pod index fbb7ff3..e906947 100644 --- a/ev.pod +++ b/ev.pod @@ -165,13 +165,14 @@ recommended ones. See the description of C<ev_embed> watchers for more info. -=item ev_set_allocator (void *(*cb)(void *ptr, size_t size)) +=item ev_set_allocator (void *(*cb)(void *ptr, long size)) -Sets the allocation function to use (the prototype and semantics are -identical to the realloc C function). It is used to allocate and free -memory (no surprises here). If it returns zero when memory needs to be -allocated, the library might abort or take some potentially destructive -action. The default is your system realloc function. +Sets the allocation function to use (the prototype is similar - the +semantics is identical - to the realloc C function). It is used to +allocate and free memory (no surprises here). If it returns zero when +memory needs to be allocated, the library might abort or take some +potentially destructive action. The default is your system realloc +function. You could override this function in high-availability programs to, say, free some memory if it cannot allocate memory, to use a special allocator, -- cgit v1.2.3