aboutsummaryrefslogtreecommitdiff
path: root/newlib
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2021-10-05 15:31:22 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2021-10-05 16:09:11 +0200
commit098cf0f98dbb310c6a7ef94f0bdaf683f276767b (patch)
treeb66e931452b9e63e15eda2a31c3a0cf9358f8f8d /newlib
parent6c1f49f83fde855c9fc428c201b3e739ca2d187f (diff)
downloadnewlib-098cf0f98dbb310c6a7ef94f0bdaf683f276767b.zip
newlib-098cf0f98dbb310c6a7ef94f0bdaf683f276767b.tar.gz
newlib-098cf0f98dbb310c6a7ef94f0bdaf683f276767b.tar.bz2
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.
Diffstat (limited to 'newlib')
-rw-r--r--newlib/libc/include/sys/tree.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/newlib/libc/include/sys/tree.h b/newlib/libc/include/sys/tree.h
index 2af77a4..15831c7 100644
--- a/newlib/libc/include/sys/tree.h
+++ b/newlib/libc/include/sys/tree.h
@@ -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; \
}