summaryrefslogtreecommitdiff
path: root/lib/typerb.c
diff options
context:
space:
mode:
authorMark Stapp <mjs@voltanet.io>2021-10-20 08:13:17 -0400
committerGitHub <noreply@github.com>2021-10-20 08:13:17 -0400
commit52e458d922157f21d97ae2ee40938db560ddba6b (patch)
tree453874e079d2ae1e2d7f7a62a77c4d9a0cc520d8 /lib/typerb.c
parentbf4af4ffb5e2ffa0b34c5bd67b5b7d4aa912747f (diff)
parent7c1803d0a0aa068a1b2e7256df48b0a36f46f14a (diff)
Merge pull request #9766 from opensourcerouting/typesafe-member-nhrp-zap
lib: add typesafe membership-test functions
Diffstat (limited to 'lib/typerb.c')
-rw-r--r--lib/typerb.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/lib/typerb.c b/lib/typerb.c
index 092faa4cc9..e1346df191 100644
--- a/lib/typerb.c
+++ b/lib/typerb.c
@@ -45,6 +45,7 @@
#include "config.h"
#endif
+#include <string.h>
#include "typerb.h"
#define RB_BLACK 0
@@ -330,6 +331,7 @@ color:
rbe_remove_color(rbt, parent, child);
rbt->count--;
+ memset(old, 0, sizeof(*old));
return (old);
}
@@ -478,3 +480,11 @@ struct rb_entry *typed_rb_min(const struct rbt_tree *rbt)
return parent;
}
+
+bool typed_rb_member(const struct typed_rb_root *rbt,
+ const struct typed_rb_entry *rbe)
+{
+ while (rbe->rbt_parent)
+ rbe = rbe->rbt_parent;
+ return rbe == rbt->rbt_root;
+}