Re: [PATCH] btree: Add custom allocator interface.
David Gibson <[email protected]> Mon, 8 Feb 2016 12:17:38 +1000
| Newsgroups | org.ozlabs.lists.ccan |
|---|---|
| Message-ID | <20160208021734.GE3702@voom> |
On Sun, Feb 07, 2016 at 10:10:39AM +1000, [email protected] wrote: > From: Stuart Longland <[email protected]> > > This provides a way for btree to be used with external allocator > libraries such as the tal or talloc modules. Rusty's comments seconded, and a couple of my own: > --- > ccan/btree/btree.c | 194 +++++++++++++++++++++++++++++++---------------------- > ccan/btree/btree.h | 29 +++++--- > 2 files changed, 136 insertions(+), 87 deletions(-) > > diff --git a/ccan/btree/btree.c b/ccan/btree/btree.c > index 636edbc..5bb2435 100644 > --- a/ccan/btree/btree.c > +++ b/ccan/btree/btree.c > @@ -29,12 +29,15 @@ > #define MAX (BTREE_ITEM_MAX) > #define MIN (BTREE_ITEM_MAX >> 1) > > -static struct btree_node *node_alloc(int internal); > +static struct btree_node *node_alloc(const struct btree_allocator* alloc, int internal); > static void node_delete(struct btree_node *node, struct btree *btree); > +static void node_free(struct btree_node *node); > > static void branch_begin(btree_iterator iter); > static void branch_end(btree_iterator iter); > static void begin_end_lr(btree_iterator iter, struct btree_node *node, int lr); > +static void* default_malloc(const struct btree_allocator* alloc, size_t size); Existing style in this function suggests "void *foo" rather than "void* foo". [snip] > +/* Default allocator implementation */ > +const struct btree_allocator BTREE_DEFAULT_ALLOCATOR = { Use of all-caps for a non-macro is a bit unexpected. > + .malloc = default_malloc, > + .free = default_free, > +}; -- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson _______________________________________________ ccan mailing list [email protected] https://lists.ozlabs.org/listinfo/ccan
signature.asc
(application/pgp-signature, 819 B)
-----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAEBAgAGBQJWt/q+AAoJEGw4ysog2bOSTewQAOOl1rvHLsyQR7Iej3QfJvrY wmST53uSYa1KV7C3Yj4l6Ih1gUVuOGMTH0fl6JKAvl3cI8wo9gdt3NN5zueqAccJ BMKFlfVFIuXXedSO0Be2WRhWlyM6uPf0hSXZQDWLliJKIPhJ5lc8mKkxWuwCionE V8C+sZPAEhdGXh+EYl5VCeLXiwCaKHrb/l/WDKtIhr5EHAjFwxZWMVDisncqkdiA MjeYo9VijQjWOpvZ3GDeZjOccfZfv7uZv7rx7m+v/x/ZHgg+9HYbEPzvLAhwrQ0h eQpgScyfJxCPw7O7nKiaB+4OuVzFu6a6M/qeCjIwkbZJMR5Mzx1sGtiWzWc7l+85 oYqj30sftFMZ93Y3SiFsArHq/0soQ24yDKGUyl208YAHJwAS8RnSJ1R19Lo5eVhc dbXNlviBr9rpXinmwBAN+1kbOlhL4d3nxP1e2mp6azFsVx9tX7PWDCAtHRyaUmwu HYSjGwes3tbVj1GGyeNiMLYYxZUS369vQgpQ3RUAtN6RxtlAD78HaDbnpCmKFd0p Quc/31ymfd2m0PyLBMZ7uHTeJOCgas62RFMb60MUwHM56YCr6iIZw4OXhJunRsle B5/vlGTRgGf4EGz30/JdGYFsWlr4YCnkA2vKFaaECrA+hTKwrjCBjNl0lKZ2ZmV3 bgTagjWhqWxWSCZO+yiZ =egRs -----END PGP SIGNATURE-----