summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorroot <root>2012-06-19 12:29:43 +0000
committerroot <root>2012-06-19 12:29:43 +0000
commit8fe68640205e75a37060779f3e3f9da20575d8b9 (patch)
tree6b0ab0b28219e93996b6f03a7dd4bb5288d8ee20
parent730f5c8d44923ea902475c6d3fafa99446a205da (diff)
*** empty log message ***
-rw-r--r--Changes1
-rw-r--r--ev.c6
2 files changed, 3 insertions, 4 deletions
diff --git a/Changes b/Changes
index bf107e7..3eb5316 100644
--- a/Changes
+++ b/Changes
@@ -37,6 +37,7 @@ TODO: ev_feed_child_event
works in all cases (unlike read/write/send/recv...).
- try to detect signals around a fork faster (test program by
Denis Bilenko).
+ - work around recent glibc versions that leak memory in realloc.
4.11 Sat Feb 4 19:52:39 CET 2012
- INCOMPATIBLE CHANGE: ev_timer_again now clears the pending status, as
diff --git a/ev.c b/ev.c
index 317dd8e..09adac9 100644
--- a/ev.c
+++ b/ev.c
@@ -1193,12 +1193,11 @@ ev_syserr (const char *msg)
static void *
ev_realloc_emul (void *ptr, long size) EV_THROW
{
-#if __GLIBC__
- return realloc (ptr, size);
-#else
/* some systems, notably openbsd and darwin, fail to properly
* implement realloc (x, 0) (as required by both ansi c-89 and
* the single unix specification, so work around them here.
+ * recently, also (at least) fedora and debian started breaking it,
+ * despite documenting it otherwise.
*/
if (size)
@@ -1206,7 +1205,6 @@ ev_realloc_emul (void *ptr, long size) EV_THROW
free (ptr);
return 0;
-#endif
}
static void *(*alloc)(void *ptr, long size) EV_THROW = ev_realloc_emul;