]> git.ozlabs.org Git - ccan/blobdiff - ccan/idtree/idtree.c
tal: allow notifiers on NULL.
[ccan] / ccan / idtree / idtree.c
index b3b1d606156a8ab79b2066cdadcfa8c8a34ef674..6e75450e67e85af287a9967cd7e88af66e147a5b 100644 (file)
@@ -25,7 +25,7 @@
 */
 
 #include <ccan/idtree/idtree.h>
-#include <ccan/talloc/talloc.h>
+#include <ccan/tal/tal.h>
 #include <stdint.h>
 #include <string.h>
 
@@ -87,7 +87,7 @@ static void free_layer(struct idtree *idp, struct idtree_layer *p)
 static int idtree_pre_get(struct idtree *idp)
 {
        while (idp->id_free_cnt < IDTREE_FREE_MAX) {
-               struct idtree_layer *pn = talloc_zero(idp, struct idtree_layer);
+               struct idtree_layer *pn = talz(idp, struct idtree_layer);
                if(pn == NULL)
                        return (0);
                free_layer(idp, pn);
@@ -100,7 +100,8 @@ static int sub_alloc(struct idtree *idp, const void *ptr, int *starting_id)
        int n, m, sh;
        struct idtree_layer *p, *pn;
        struct idtree_layer *pa[MAX_LEVEL+1];
-       unsigned int l, id, oid;
+       unsigned int l;
+       int id, oid;
        uint32_t bm;
 
        memset(pa, 0, sizeof(pa));
@@ -134,7 +135,7 @@ restart:
                         */
                        sh = IDTREE_BITS * (l + 1);
                        if (oid >> sh == id >> sh)
-                       continue;
+                               continue;
                        else
                                goto restart;
                }
@@ -277,7 +278,7 @@ void *idtree_lookup(const struct idtree *idp, int id)
         * present.  If so, tain't one of ours!
         */
        if (n + IDTREE_BITS < 31 &&
-           (id & ~(~0 << MAX_ID_SHIFT)) >> (n + IDTREE_BITS))
+           (id & ~(~0U << MAX_ID_SHIFT)) >> (n + IDTREE_BITS))
             return NULL;
 
        /* Mask off upper bits we don't use for the search. */
@@ -313,14 +314,14 @@ bool idtree_remove(struct idtree *idp, int id)
        }
        while (idp->id_free_cnt >= IDTREE_FREE_MAX) {
                p = alloc_layer(idp);
-               talloc_free(p);
+               tal_free(p);
        }
        return true;
 }
 
 struct idtree *idtree_new(void *mem_ctx)
 {
-       return talloc_zero(mem_ctx, struct idtree);
+       return talz(mem_ctx, struct idtree);
 }
 
 int idtree_add(struct idtree *idp, const void *ptr, int limit)