1 /* Licensed under LGPLv2.1+ - see LICENSE file for details */
2 #include <ccan/jset/jset.h>
3 #include <ccan/build_assert/build_assert.h>
7 struct jset *jset_new_(size_t size)
11 /* Judy uses Word_t, we use unsigned long directly. */
12 BUILD_ASSERT(sizeof(unsigned long) == sizeof(Word_t));
13 /* We pack pointers into jset (in jset_type.h) */
14 BUILD_ASSERT(sizeof(Word_t) >= sizeof(void *));
16 assert(size >= sizeof(*set));
20 memset(&set->err, 0, sizeof(set->err));
26 const char *jset_error_str_(struct jset *set)
29 free((char *)set->errstr);
30 set->errstr = str = malloc(100);
32 return "out of memory";
35 "JU_ERRNO_* == %d, ID == %d\n",
36 JU_ERRNO(&set->err), JU_ERRID(&set->err));
40 void jset_free_(const struct jset *set)
42 free((char *)set->errstr);
43 Judy1FreeArray((PPvoid_t)&set->judy, PJE0);