--- libev/ev_epoll.c 2007/11/01 13:11:12 1.9 +++ libev/ev_epoll.c 2007/11/02 11:02:23 1.10 @@ -81,10 +81,10 @@ ); /* if the receive array was full, increase its size */ - if (eventcnt == eventmax) + if (expect_false (eventcnt == eventmax)) { free (events); - eventmax += eventmax >> 1; + eventmax = array_roundsize (events, eventmax << 1); events = malloc (sizeof (struct epoll_event) * eventmax); } }