X-Git-Url: http://git.ozlabs.org/?a=blobdiff_plain;f=ccan%2Ftal%2Ftal.h;h=30c8e7bb9207c4daba3cb046e651ff288de21bfe;hb=d16685e327c01b79bf4b49793f56cbe3e33ff179;hp=200c2b161fc60916de8fb8954b27c293d2c0e84e;hpb=58277ab6c8b4dd6bb66638b88bd8505f46fdcb07;p=ccan diff --git a/ccan/tal/tal.h b/ccan/tal/tal.h index 200c2b16..30c8e7bb 100644 --- a/ccan/tal/tal.h +++ b/ccan/tal/tal.h @@ -6,6 +6,7 @@ #include #include #include +#include #include #include #include @@ -304,18 +305,18 @@ const char *tal_name(const tal_t *ptr); /** * tal_count - get the count of objects in a tal_arr. - * @ptr: The tal allocated object array. + * @ptr: The tal allocated object array (or NULL) * - * Returns 0 if @ptr has no length property, but be aware that that is - * also a valid size! + * Returns 0 if @ptr has no length property or is NULL, but be aware + * that that is also a valid size! */ #define tal_count(p) (tal_len(p) / sizeof(*p)) /** * tal_len - get the count of bytes in a tal_arr. - * @ptr: The tal allocated object array. + * @ptr: The tal allocated object array (or NULL) * - * Returns 0 if @ptr has no length property, but be aware that that is + * Returns 0 if @ptr has no length property or NULL, but be aware that that is * also a valid size! */ size_t tal_len(const tal_t *ptr); @@ -351,7 +352,7 @@ tal_t *tal_parent(const tal_t *ctx); * @type: the type (should match type of @p!) * @p: the object to copy (or reparented if take()) */ -#define tal_dup(ctx, type, p) \ +#define tal_dup(ctx, type, p) \ ((type *)tal_dup_((ctx), tal_typechk_(p, type *), \ sizeof(type), 1, 0, \ false, TAL_LABEL(type, ""))) @@ -487,14 +488,14 @@ void *tal_alloc_(const tal_t *ctx, size_t bytes, bool clear, void *tal_alloc_arr_(const tal_t *ctx, size_t bytes, size_t count, bool clear, bool add_length, const char *label); -void *tal_dup_(const tal_t *ctx, const void *p, size_t size, +void *tal_dup_(const tal_t *ctx, const void *p TAKES, size_t size, size_t n, size_t extra, bool add_length, const char *label); tal_t *tal_steal_(const tal_t *new_parent, const tal_t *t); bool tal_resize_(tal_t **ctxp, size_t size, size_t count, bool clear); -bool tal_expand_(tal_t **ctxp, const void *src, size_t size, size_t count); +bool tal_expand_(tal_t **ctxp, const void *src TAKES, size_t size, size_t count); bool tal_add_destructor_(const tal_t *ctx, void (*destroy)(void *me)); bool tal_add_destructor2_(const tal_t *ctx, void (*destroy)(void *me, void *arg),