1 /* Licensed under LGPLv2.1+ - see LICENSE file for details */
2 #include <ccan/jmap/jmap.h>
3 #include <ccan/build_assert/build_assert.h>
7 struct jmap *jmap_new_(size_t size)
11 /* Judy uses unsigned long for Word_t, we use unsigned long. */
12 BUILD_ASSERT(sizeof(Word_t) == sizeof(unsigned long));
13 /* We also put pointers into Judy, in jmap_types.h */
14 BUILD_ASSERT(sizeof(Word_t) >= sizeof(void *));
16 assert(size >= sizeof(*map));
20 memset(&map->err, 0, sizeof(map->err));
22 map->num_accesses = 0;
23 map->acc_value = NULL;
30 const char *jmap_error_str_(struct jmap *map)
33 free((char *)map->errstr);
34 map->errstr = str = malloc(100);
36 return "out of memory";
39 "JU_ERRNO_* == %d, ID == %d\n",
40 JU_ERRNO(&map->err), JU_ERRID(&map->err));
44 void jmap_free_(const struct jmap *map)
46 free((char *)map->errstr);
47 JudyLFreeArray((PPvoid_t)&map->judy, PJE0);