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-----