--- libev/ev.c 2008/05/07 14:45:17 1.235 +++ libev/ev.c 2008/05/07 14:46:22 1.236 @@ -810,6 +810,7 @@ // find minimum child if (expect_true (pos +3 < E)) { + /* fast path */ (minpos = pos + 0), (minat = (*minpos)->at); if (pos [1]->at < minat) (minpos = pos + 1), (minat = (*minpos)->at); if (pos [2]->at < minat) (minpos = pos + 2), (minat = (*minpos)->at); @@ -817,9 +818,9 @@ } else { + /* slow path */ if (pos >= E) break; - (minpos = pos + 0), (minat = (*minpos)->at); if (pos + 1 < E && pos [1]->at < minat) (minpos = pos + 1), (minat = (*minpos)->at); if (pos + 2 < E && pos [2]->at < minat) (minpos = pos + 2), (minat = (*minpos)->at);