Page MenuHomeFreeBSD

D25089.id72515.diff
No OneTemporary

D25089.id72515.diff

Index: sys/sys/tree.h
===================================================================
--- sys/sys/tree.h
+++ sys/sys/tree.h
@@ -493,22 +493,19 @@
RB_ROTATE_LEFT(head, parent, tmp, field);\
tmp = RB_RIGHT(parent, field); \
} \
- if (!RB_ISRED(RB_LEFT(tmp, field), field) && \
- !RB_ISRED(RB_RIGHT(tmp, field), field)) { \
+ if (RB_ISRED(RB_LEFT(tmp, field), field)) { \
+ struct type *oleft; \
+ oleft = RB_LEFT(tmp, field); \
+ RB_COLOR(oleft, field) = RB_BLACK; \
RB_COLOR(tmp, field) = RB_RED; \
+ RB_ROTATE_RIGHT(head, tmp, oleft, field); \
+ tmp = RB_RIGHT(parent, field); \
+ } else if (!RB_ISRED(RB_RIGHT(tmp, field), field)) { \
+ RB_COLOR(tmp, field) = RB_RED; \
elm = parent; \
parent = RB_PARENT(elm, field); \
continue; \
} \
- if (!RB_ISRED(RB_RIGHT(tmp, field), field)) { \
- struct type *oleft; \
- if ((oleft = RB_LEFT(tmp, field)) \
- != NULL) \
- RB_COLOR(oleft, field) = RB_BLACK; \
- RB_COLOR(tmp, field) = RB_RED; \
- RB_ROTATE_RIGHT(head, tmp, oleft, field); \
- tmp = RB_RIGHT(parent, field); \
- } \
RB_COLOR(tmp, field) = RB_COLOR(parent, field); \
RB_COLOR(parent, field) = RB_BLACK; \
if (RB_RIGHT(tmp, field)) \
@@ -523,22 +520,19 @@
RB_ROTATE_RIGHT(head, parent, tmp, field);\
tmp = RB_LEFT(parent, field); \
} \
- if (!RB_ISRED(RB_LEFT(tmp, field), field) && \
- !RB_ISRED(RB_RIGHT(tmp, field), field)) { \
+ if (RB_ISRED(RB_RIGHT(tmp, field), field)) { \
+ struct type *oright; \
+ oright = RB_RIGHT(tmp, field); \
+ RB_COLOR(oright, field) = RB_BLACK; \
RB_COLOR(tmp, field) = RB_RED; \
+ RB_ROTATE_LEFT(head, tmp, oright, field); \
+ tmp = RB_LEFT(parent, field); \
+ } else if (!RB_ISRED(RB_LEFT(tmp, field), field)) { \
+ RB_COLOR(tmp, field) = RB_RED; \
elm = parent; \
parent = RB_PARENT(elm, field); \
continue; \
} \
- if (!RB_ISRED(RB_LEFT(tmp, field), field)) { \
- struct type *oright; \
- if ((oright = RB_RIGHT(tmp, field)) \
- != NULL) \
- RB_COLOR(oright, field) = RB_BLACK; \
- RB_COLOR(tmp, field) = RB_RED; \
- RB_ROTATE_LEFT(head, tmp, oright, field); \
- tmp = RB_LEFT(parent, field); \
- } \
RB_COLOR(tmp, field) = RB_COLOR(parent, field); \
RB_COLOR(parent, field) = RB_BLACK; \
if (RB_LEFT(tmp, field)) \

File Metadata

Mime Type
text/plain
Expires
Tue, Nov 11, 2:52 AM (7 h, 6 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
25135324
Default Alt Text
D25089.id72515.diff (2 KB)

Event Timeline