]> git.llucax.com Git - software/libev.git/commitdiff
I ❤ µ-opts
authorroot <root>
Tue, 27 Nov 2007 19:41:52 +0000 (19:41 +0000)
committerroot <root>
Tue, 27 Nov 2007 19:41:52 +0000 (19:41 +0000)
ev.3
ev.c
ev.h
ev.html
ev.pod

diff --git a/ev.3 b/ev.3
index d718a09ff67dabad5e108b5f0dd3956da3279786..757d850678366b1efadd00cc40d42910452be88f 100644 (file)
--- a/ev.3
+++ b/ev.3
@@ -242,13 +242,13 @@ 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, long size))" 4
-.IX Item "ev_set_allocator (void *(*cb)(void *ptr, long size))"
-Sets the allocation function to use (the prototype is similar to the
-realloc C function, the semantics are identical). 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, 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.
 .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,
@@ -259,7 +259,7 @@ retries: better than mine).
 .Sp
 .Vb 6
 \&   static void *
-\&   persistent_realloc (void *ptr, long size)
+\&   persistent_realloc (void *ptr, size_t size)
 \&   {
 \&     for (;;)
 \&       {
diff --git a/ev.c b/ev.c
index 8911cb8466145287be2f6b82f6537ae5bdb36257..4452952883a99737394a1850b2a9e354ebfe66f0 100644 (file)
--- a/ev.c
+++ b/ev.c
@@ -255,22 +255,22 @@ syserr (const char *msg)
     }
 }
 
-static void *(*alloc)(void *ptr, long size);
+static void *(*alloc)(void *ptr, size_t size) = realloc;
 
 void
-ev_set_allocator (void *(*cb)(void *ptr, long size))
+ev_set_allocator (void *(*cb)(void *ptr, size_t size))
 {
   alloc = cb;
 }
 
-static void *
-ev_realloc (void *ptr, long size)
+inline_speed void *
+ev_realloc (void *ptr, size_t size)
 {
-  ptr = alloc ? alloc (ptr, size) : realloc (ptr, size);
+  ptr = alloc (ptr, size);
 
   if (!ptr && size)
     {
-      fprintf (stderr, "libev: cannot allocate %ld bytes, aborting.", size);
+      fprintf (stderr, "libev: cannot allocate %ld bytes, aborting.", (long)size);
       abort ();
     }
 
diff --git a/ev.h b/ev.h
index 26ffe7804d526f1df69579c2b99385e4a4370e05..db795200e2c233e5bf745b9a08473a66615a042c 100644 (file)
--- a/ev.h
+++ b/ev.h
@@ -66,6 +66,8 @@ typedef double ev_tstamp;
 
 /*****************************************************************************/
 
+#include <stddef.h> /* for size_t */
+
 #if EV_STAT_ENABLE
 # include <sys/stat.h>
 #endif
@@ -334,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, long size));
+void ev_set_allocator (void *(*cb)(void *ptr, size_t size));
 
 /* set the callback function to call on a
  * retryable syscall error
diff --git a/ev.html b/ev.html
index 5bcffd0c95220e2d3bfe1dd6b90b1f2eb2539471..bd938531d57ededa483faa80eeca71bfbc8236f8 100644 (file)
--- a/ev.html
+++ b/ev.html
@@ -6,7 +6,7 @@
        <meta name="description" content="Pod documentation for libev" />
        <meta name="inputfile" content="&lt;standard input&gt;" />
        <meta name="outputfile" content="&lt;standard output&gt;" />
-       <meta name="created" content="Tue Nov 27 20:23:27 2007" />
+       <meta name="created" content="Tue Nov 27 20:38:24 2007" />
        <meta name="generator" content="Pod::Xhtml 1.57" />
 <link rel="stylesheet" href="http://res.tst.eu/pod.css"/></head>
 <body>
@@ -181,20 +181,20 @@ 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, long size))</dt>
+       <dt>ev_set_allocator (void *(*cb)(void *ptr, size_t size))</dt>
        <dd>
-               <p>Sets the allocation function to use (the prototype is similar to the
-realloc C function, the semantics are identical). 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 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>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>
                <p>Example: replace the libev allocator with one that waits a bit and then
 retries: better than mine).</p>
 <pre>   static void *
-   persistent_realloc (void *ptr, long size)
+   persistent_realloc (void *ptr, size_t size)
    {
      for (;;)
        {
diff --git a/ev.pod b/ev.pod
index 5b0835dd77b1ae9c38462207de5201b611393d97..dceb010c2138f63d692a1ad9ef9c08402159f015 100644 (file)
--- a/ev.pod
+++ b/ev.pod
@@ -117,13 +117,13 @@ recommended ones.
 
 See the description of C<ev_embed> watchers for more info.
 
-=item ev_set_allocator (void *(*cb)(void *ptr, long size))
+=item ev_set_allocator (void *(*cb)(void *ptr, size_t size))
 
-Sets the allocation function to use (the prototype is similar to the
-realloc C function, the semantics are identical). 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 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.
 
 You could override this function in high-availability programs to, say,
 free some memory if it cannot allocate memory, to use a special allocator,
@@ -133,7 +133,7 @@ Example: replace the libev allocator with one that waits a bit and then
 retries: better than mine).
 
    static void *
-   persistent_realloc (void *ptr, long size)
+   persistent_realloc (void *ptr, size_t size)
    {
      for (;;)
        {