]> git.ozlabs.org Git - ccan/blobdiff - ccan/jmap/jmap.c
container_of: don't put member_ptr in container_off.
[ccan] / ccan / jmap / jmap.c
index 1773d56f5ddecc8afe4420fb17bc106ffe601025..8982a7155ca73bc7059c441d4cdff539e13c40f1 100644 (file)
@@ -1,9 +1,10 @@
+/* Licensed under LGPLv2.1+ - see LICENSE file for details */
 #include <ccan/jmap/jmap.h>
 #include <ccan/build_assert/build_assert.h>
 #include <stdlib.h>
 #include <string.h>
 
-struct jmap *jmap_new(void)
+struct jmap *jmap_new_(size_t size)
 {
        struct jmap *map;
 
@@ -12,7 +13,8 @@ struct jmap *jmap_new(void)
        /* We also put pointers into Judy, in jmap_types.h */
        BUILD_ASSERT(sizeof(Word_t) >= sizeof(void *));
 
-       map = malloc(sizeof(*map));
+       assert(size >= sizeof(*map));
+       map = malloc(size);
        if (map) {
                map->judy = NULL;
                memset(&map->err, 0, sizeof(map->err));
@@ -25,7 +27,7 @@ struct jmap *jmap_new(void)
        return map;
 }
 
-const char *jmap_error_(struct jmap *map)
+const char *jmap_error_str_(struct jmap *map)
 {
        char *str;
        free((char *)map->errstr);
@@ -39,9 +41,9 @@ const char *jmap_error_(struct jmap *map)
        return str;
 }
 
-void jmap_free(const struct jmap *map)
+void jmap_free_(const struct jmap *map)
 {
        free((char *)map->errstr);
-       Judy1FreeArray((PPvoid_t)&map->judy, PJE0);
+       JudyLFreeArray((PPvoid_t)&map->judy, PJE0);
        free((void *)map);
 }