diff options
author | ftrvxmtrx <ftrvxmtrx@gmail.com> | 2016-11-17 23:07:54 +0100 |
---|---|---|
committer | ftrvxmtrx <ftrvxmtrx@gmail.com> | 2016-11-17 23:07:54 +0100 |
commit | ee9b0eef895209023ab7d7cc1808f33318834999 (patch) | |
tree | 39ae64a35ddcf156847fa46b9d5cb23400277e79 /sys/src/libavl/avl.c | |
parent | ed76659c054ce781ae6050e563de9ad40b3d25cd (diff) |
libavl, libregexp: put debug functions back
Diffstat (limited to 'sys/src/libavl/avl.c')
-rw-r--r-- | sys/src/libavl/avl.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/sys/src/libavl/avl.c b/sys/src/libavl/avl.c index ec60df209..59266d36d 100644 --- a/sys/src/libavl/avl.c +++ b/sys/src/libavl/avl.c @@ -204,6 +204,17 @@ _deleteavl(Avl **tp, Avl *p, Avl *rx, int(*cmp)(Avl*,Avl*), Avl **del, return -(ob != 0 && (*tp)->bal == 0); } +static void +checkparents(Avl *a, Avl *p) +{ + if(a == nil) + return; + if(a->p != p) + print("bad parent\n"); + checkparents(a->n[0], a); + checkparents(a->n[1], a); +} + struct Avltree { Avl *root; @@ -413,3 +424,13 @@ endwalk(Avlwalk *w) } free(w); } + +static void +walkavl(Avl *t, void (*f)(Avl*, void*), void *v) +{ + if(t == nil) + return; + walkavl(t->n[0], f, v); + f(t, v); + walkavl(t->n[1], f, v); +} |