sys/tree.h: Simplify loop condition

We have

  #define RB_ISRED(elm, field) \
    ((elm) != NULL && RB_COLOR(elm, field) == RB_RED)

So, the RB_ISRED() contains an implicit check for NULL.  In
RB_GENERATE_REMOVE_COLOR() the "elm" pointer cannot be NULL in the while
condition.  Use RB_COLOR(elm) == RB_BLACK instead.
This commit is contained in:
Sebastian Huber 2021-10-05 15:31:22 +02:00
parent 6c1f49f83f
commit 098cf0f98d
1 changed files with 1 additions and 1 deletions

View File

@ -540,7 +540,7 @@ name##_RB_REMOVE_COLOR(struct name *head, struct type *parent) \
elm = RB_ROOT(head); \
break; \
} \
} while (!RB_ISRED(elm, field) && parent != NULL); \
} while (RB_COLOR(elm, field) == RB_BLACK && parent != NULL); \
RB_COLOR(elm, field) = RB_BLACK; \
}