Mercurial > hg > cdb
diff cdb.c @ 12:0e21568dec72
allocate a Cdb struct rather than using a single static one,
note that cdb_free does _not_ call alloc_free, just releases the map,
in fact alloc_free is not called anywhere!
| author | Henry S. Thompson <ht@inf.ed.ac.uk> |
|---|---|
| date | Mon, 03 Feb 2025 17:31:23 +0000 |
| parents | 41b9b6a160d1 |
| children | 70f4df5a7283 |
line wrap: on
line diff
--- a/cdb.c Fri Jan 31 17:28:35 2025 +0000 +++ b/cdb.c Mon Feb 03 17:31:23 2025 +0000 @@ -7,17 +7,18 @@ #include "error.h" #include "seek.h" #include "byte.h" +#include "alloc.h" #include "cdb.h" -static Cdb c; +/*static Cdb c;*/ Cdb* cdb_new(void) { - return &c; + return (Cdb *)(alloc(sizeof(Cdb))); } -void cdb_free(Cdb *c) +void cdb_clear(Cdb *c) { if (c->map) { munmap(c->map,c->size); @@ -25,21 +26,21 @@ } } -uint32 cdb_len() { - return c.dlen; -} +/* uint32 cdb_len() { */ +/* return c.dlen; */ +/* } */ -uint32 cdb_pos() { - return c.dpos; -} +/* uint32 cdb_pos() { */ +/* return c.dpos; */ +/* } */ -char *cdb_mmap() { - return c.map; -} +/* char *cdb_mmap() { */ +/* return c.map; */ +/* } */ -uint32 cdb_msize() { - return c.size; -} +/* uint32 cdb_msize() { */ +/* return c.size; */ +/* } */ void cdb_findstart(Cdb *c) { @@ -51,7 +52,7 @@ struct stat st; char *x; - cdb_free(c); + cdb_clear(c); cdb_findstart(c); c->fd = fd;
