Lines Matching refs:standin
377 struct archive_rb_node *self, struct archive_rb_node *standin)
379 const unsigned int standin_which = RB_POSITION(standin);
382 struct archive_rb_node *standin_father = RB_FATHER(standin);
383 int rebalance = RB_BLACK_P(standin);
390 standin_son = standin->rb_nodes[standin_which];
396 standin_son = standin->rb_nodes[standin_other];
418 * If we are about to delete the standin's father, then when
421 * our standin's father we only need to reparent the standin's
428 * Have our son/standin adopt his brother as his new son.
430 standin_father = standin;
437 * Sever standin's connection to his father.
443 standin->rb_nodes[standin_other] = self->rb_nodes[standin_other];
444 RB_SET_FATHER(standin->rb_nodes[standin_other], standin);
453 * Move the only remaining son to our standin. If our standin is our
456 standin->rb_nodes[standin_other] = self->rb_nodes[standin_other];
457 RB_SET_FATHER(standin->rb_nodes[standin_other], standin);
460 * Now copy the result of self to standin and then replace
461 * self with standin in the tree.
463 RB_COPY_PROPERTIES(standin, self);
464 RB_SET_FATHER(standin, RB_FATHER(self));
465 RB_FATHER(standin)->rb_nodes[RB_POSITION(standin)] = standin;
500 struct archive_rb_node *standin;
549 standin = __archive_rb_tree_iterate(rbt, self, which);
550 __archive_rb_tree_swap_prune_and_rebalance(rbt, self, standin);