diff options
author | des <des@FreeBSD.org> | 2004-03-19 20:14:23 +0000 |
---|---|---|
committer | des <des@FreeBSD.org> | 2004-03-19 20:14:23 +0000 |
commit | 72333ddf85437cd9c1cea620efb585cea2935d22 (patch) | |
tree | e0e5c08104a55c46c345ed8f753e591c102953ec /sys | |
parent | 81042c35e68e874902981383219b3f726de796e8 (diff) | |
download | FreeBSD-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.h | 8 |
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 */ |