| #include <u.h> | |
| #include <libc.h> | |
| #include <bio.h> | |
| #include <ndb.h> | |
| /* remove a from t and free it */ | |
| Ndbtuple* | |
| ndbdiscard(Ndbtuple *t, Ndbtuple *a) | |
| { | |
| Ndbtuple *nt; | |
| /* unchain a */ | |
| for(nt = t; nt != nil; nt = nt->entry){ | |
| if(nt->line == a) | |
| nt->line = a->line; | |
| if(nt->entry == a) | |
| nt->entry = a->entry; | |
| } | |
| /* a may be start of chain */ | |
| if(t == a) | |
| t = a->entry; | |
| /* free a */ | |
| a->entry = nil; | |
| ndbfree(a); | |
| return t; | |
| } |