Lines Matching refs:father
608 int father = HEAP_FATHER(son); in heap_insert() local
611 if (DN_KEY_LT( h->p[father].key, h->p[son].key )) { in heap_insert()
615 HEAP_SWAP(h->p[son], h->p[father], tmp); in heap_insert()
617 son = father; in heap_insert()
629 int child, father, maxelt = h->elements - 1; in heap_extract() local
636 father = 0; /* default: move up smallest child */ in heap_extract()
641 father = *((int *)(void *)((char *)obj + h->offset)); in heap_extract()
642 if (father < 0 || father >= h->elements) { in heap_extract()
644 father, h->elements); in heap_extract()
648 RESET_OFFSET(h, father); in heap_extract()
649 child = HEAP_LEFT(father); /* left child */ in heap_extract()
654 h->p[father] = h->p[child]; in heap_extract()
655 SET_OFFSET(h, father); in heap_extract()
656 father = child; in heap_extract()
660 if (father != maxelt) { in heap_extract()
664 h->p[father] = h->p[maxelt]; in heap_extract()
665 heap_insert(h, father, NULL); /* this one cannot fail */ in heap_extract()