k = 1; da[0] = 0; pa[0] = (struct rtavl_node *) &tree->rtavl_root; p = tree->rtavl_root; if (p == NULL) return NULL; for (;;) { int cmp, dir; cmp = tree->rtavl_compare (item, p->rtavl_data, tree->rtavl_param); if (cmp == 0) break; dir = cmp > 0; if (dir == 0) { if (p->rtavl_link[0] == NULL) return NULL; } else /* |dir == 1| */ { if (p->rtavl_rtag == RTAVL_THREAD) return NULL; } pa[k] = p; da[k++] = dir; p = p->rtavl_link[dir]; } tree->rtavl_count--; item = p->rtavl_data;