1 #include <ccan/jmap/jmap.h>
2 #include <ccan/build_assert/build_assert.h>
6 struct jmap *jmap_new(void)
10 /* Judy uses unsigned long for Word_t, we use unsigned long. */
11 BUILD_ASSERT(sizeof(Word_t) == sizeof(unsigned long));
12 /* We also put pointers into Judy, in jmap_types.h */
13 BUILD_ASSERT(sizeof(Word_t) >= sizeof(void *));
15 map = malloc(sizeof(*map));
18 memset(&map->err, 0, sizeof(map->err));
20 map->num_accesses = 0;
21 map->acc_value = NULL;
28 const char *jmap_error_(struct jmap *map)
31 free((char *)map->errstr);
32 map->errstr = str = malloc(100);
34 return "out of memory";
37 "JU_ERRNO_* == %d, ID == %d\n",
38 JU_ERRNO(&map->err), JU_ERRID(&map->err));
42 void jmap_free(const struct jmap *map)
44 free((char *)map->errstr);
45 Judy1FreeArray((PPvoid_t)&map->judy, PJE0);