diff options
| author | Mark Stapp <mjs@voltanet.io> | 2021-10-20 08:13:17 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-10-20 08:13:17 -0400 |
| commit | 52e458d922157f21d97ae2ee40938db560ddba6b (patch) | |
| tree | 453874e079d2ae1e2d7f7a62a77c4d9a0cc520d8 /lib/typerb.c | |
| parent | bf4af4ffb5e2ffa0b34c5bd67b5b7d4aa912747f (diff) | |
| parent | 7c1803d0a0aa068a1b2e7256df48b0a36f46f14a (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.c | 10 |
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; +} |
