mirror of /home/gitosis/repositories/libev.git
*** empty log message ***
This commit is contained in:
parent
4c2dad4e18
commit
843cdaedc8
15
ev.c
15
ev.c
|
@ -778,12 +778,13 @@ void inline_speed
|
|||
upheap (WT *heap, int k)
|
||||
{
|
||||
WT w = heap [k];
|
||||
ev_tstamp w_at = w->at;
|
||||
|
||||
for (;;)
|
||||
{
|
||||
int p = ((k - HEAP0 - 1) / DHEAP) + HEAP0;
|
||||
|
||||
if (p == k || heap [p]->at <= w->at)
|
||||
if (p == k || heap [p]->at <= w_at)
|
||||
break;
|
||||
|
||||
heap [k] = heap [p];
|
||||
|
@ -811,22 +812,20 @@ downheap (WT *heap, int N, int k)
|
|||
// find minimum child
|
||||
if (expect_true (pos + DHEAP - 1 < E))
|
||||
{
|
||||
/* fast path */
|
||||
(minpos = pos + 0), (minat = (*minpos)->at);
|
||||
/* 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);
|
||||
if (pos [3]->at < minat) (minpos = pos + 3), (minat = (*minpos)->at);
|
||||
}
|
||||
else
|
||||
else if (pos < E)
|
||||
{
|
||||
/* slow path */
|
||||
if (pos >= E)
|
||||
break;
|
||||
(minpos = pos + 0), (minat = (*minpos)->at);
|
||||
/* slow path */ (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);
|
||||
if (pos + 3 < E && pos [3]->at < minat) (minpos = pos + 3), (minat = (*minpos)->at);
|
||||
}
|
||||
else
|
||||
break;
|
||||
|
||||
if (w->at <= minat)
|
||||
break;
|
||||
|
|
Loading…
Reference in New Issue