RB_PARENT
RB_PARENT(elm, field) = parent; \
RB_PARENT(RB_LEFT(tmp, field), field) = (elm); \
if ((RB_PARENT(tmp, field) = RB_PARENT(elm, field))) { \
if ((elm) == RB_LEFT(RB_PARENT(elm, field), field)) \
RB_LEFT(RB_PARENT(elm, field), field) = (tmp); \
RB_RIGHT(RB_PARENT(elm, field), field) = (tmp); \
RB_PARENT(elm, field) = (tmp); \
if ((RB_PARENT(tmp, field))) \
RB_AUGMENT(RB_PARENT(tmp, field)); \
RB_PARENT(RB_RIGHT(tmp, field), field) = (elm); \
if ((RB_PARENT(tmp, field) = RB_PARENT(elm, field))) { \
if ((elm) == RB_LEFT(RB_PARENT(elm, field), field)) \
RB_LEFT(RB_PARENT(elm, field), field) = (tmp); \
RB_RIGHT(RB_PARENT(elm, field), field) = (tmp); \
RB_PARENT(elm, field) = (tmp); \
if ((RB_PARENT(tmp, field))) \
RB_AUGMENT(RB_PARENT(tmp, field)); \
while ((parent = RB_PARENT(elm, field)) && \
gparent = RB_PARENT(parent, field); \
parent = RB_PARENT(elm, field); \
parent = RB_PARENT(elm, field); \
parent = RB_PARENT(elm, field); \
RB_PARENT(child, field) = parent; \
if (RB_PARENT(elm, field) == old) \
if (RB_PARENT(old, field)) { \
if (RB_LEFT(RB_PARENT(old, field), field) == old)\
RB_LEFT(RB_PARENT(old, field), field) = elm;\
RB_RIGHT(RB_PARENT(old, field), field) = elm;\
RB_AUGMENT(RB_PARENT(old, field)); \
RB_PARENT(RB_LEFT(old, field), field) = elm; \
RB_PARENT(RB_RIGHT(old, field), field) = elm; \
} while ((left = RB_PARENT(left, field))); \
parent = RB_PARENT(elm, field); \
RB_PARENT(child, field) = parent; \
if (RB_PARENT(elm, field) && \
(elm == RB_LEFT(RB_PARENT(elm, field), field))) \
elm = RB_PARENT(elm, field); \
while (RB_PARENT(elm, field) && \
(elm == RB_RIGHT(RB_PARENT(elm, field), field)))\
elm = RB_PARENT(elm, field); \
elm = RB_PARENT(elm, field); \
if (RB_PARENT(elm, field) && \
(elm == RB_RIGHT(RB_PARENT(elm, field), field))) \
elm = RB_PARENT(elm, field); \
while (RB_PARENT(elm, field) && \
(elm == RB_LEFT(RB_PARENT(elm, field), field)))\
elm = RB_PARENT(elm, field); \
elm = RB_PARENT(elm, field); \