summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authordes <des@FreeBSD.org>2004-03-19 20:14:23 +0000
committerdes <des@FreeBSD.org>2004-03-19 20:14:23 +0000
commit72333ddf85437cd9c1cea620efb585cea2935d22 (patch)
treee0e5c08104a55c46c345ed8f753e591c102953ec /sys
parent81042c35e68e874902981383219b3f726de796e8 (diff)
downloadFreeBSD-src-72333ddf85437cd9c1cea620efb585cea2935d22.zip
FreeBSD-src-72333ddf85437cd9c1cea620efb585cea2935d22.tar.gz
Sync with OpenBSD (two-year old bug fix)
Diffstat (limited to 'sys')
-rw-r--r--sys/sys/tree.h8
1 files changed, 5 insertions, 3 deletions
diff --git a/sys/sys/tree.h b/sys/sys/tree.h
index 0a58710..927ca04 100644
--- a/sys/sys/tree.h
+++ b/sys/sys/tree.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: tree.h,v 1.6 2002/06/11 22:09:52 provos Exp $ */
+/* $OpenBSD: tree.h,v 1.7 2002/10/17 21:51:54 art Exp $ */
/*
* Copyright 2002 Niels Provos <provos@citi.umich.edu>
* All rights reserved.
@@ -343,12 +343,13 @@ struct { \
RB_LEFT(RB_PARENT(elm, field), field) = (tmp); \
else \
RB_RIGHT(RB_PARENT(elm, field), field) = (tmp); \
- RB_AUGMENT(RB_PARENT(elm, field)); \
} else \
(head)->rbh_root = (tmp); \
RB_LEFT(tmp, field) = (elm); \
RB_PARENT(elm, field) = (tmp); \
RB_AUGMENT(tmp); \
+ if ((RB_PARENT(tmp, field))) \
+ RB_AUGMENT(RB_PARENT(tmp, field)); \
} while (0)
#define RB_ROTATE_RIGHT(head, elm, tmp, field) do { \
@@ -362,12 +363,13 @@ struct { \
RB_LEFT(RB_PARENT(elm, field), field) = (tmp); \
else \
RB_RIGHT(RB_PARENT(elm, field), field) = (tmp); \
- RB_AUGMENT(RB_PARENT(elm, field)); \
} else \
(head)->rbh_root = (tmp); \
RB_RIGHT(tmp, field) = (elm); \
RB_PARENT(elm, field) = (tmp); \
RB_AUGMENT(tmp); \
+ if ((RB_PARENT(tmp, field))) \
+ RB_AUGMENT(RB_PARENT(tmp, field)); \
} while (0)
/* Generates prototypes and inline functions */
OpenPOWER on IntegriCloud