Blame


1 d957951b 2005-02-11 devnull #include <u.h>
2 d957951b 2005-02-11 devnull #include <libc.h>
3 d957951b 2005-02-11 devnull #include <bio.h>
4 d957951b 2005-02-11 devnull #include <ndb.h>
5 d957951b 2005-02-11 devnull
6 d957951b 2005-02-11 devnull /* remove a from t and free it */
7 d957951b 2005-02-11 devnull Ndbtuple*
8 d957951b 2005-02-11 devnull ndbdiscard(Ndbtuple *t, Ndbtuple *a)
9 d957951b 2005-02-11 devnull {
10 d957951b 2005-02-11 devnull Ndbtuple *nt;
11 d957951b 2005-02-11 devnull
12 d957951b 2005-02-11 devnull /* unchain a */
13 d957951b 2005-02-11 devnull for(nt = t; nt != nil; nt = nt->entry){
14 d957951b 2005-02-11 devnull if(nt->line == a)
15 d957951b 2005-02-11 devnull nt->line = a->line;
16 d957951b 2005-02-11 devnull if(nt->entry == a)
17 d957951b 2005-02-11 devnull nt->entry = a->entry;
18 d957951b 2005-02-11 devnull }
19 d957951b 2005-02-11 devnull
20 d957951b 2005-02-11 devnull /* a may be start of chain */
21 d957951b 2005-02-11 devnull if(t == a)
22 d957951b 2005-02-11 devnull t = a->entry;
23 d957951b 2005-02-11 devnull
24 d957951b 2005-02-11 devnull /* free a */
25 d957951b 2005-02-11 devnull a->entry = nil;
26 d957951b 2005-02-11 devnull ndbfree(a);
27 d957951b 2005-02-11 devnull
28 d957951b 2005-02-11 devnull return t;
29 d957951b 2005-02-11 devnull }