X-Git-Url: http://git.ozlabs.org/?p=ccan;a=blobdiff_plain;f=ccan%2Ftal%2Ftalloc%2Ftalloc.h;fp=ccan%2Ftal%2Ftalloc%2Ftalloc.h;h=8dfb80e7dd27ea59af20a57cf94966e94a589dd9;hp=718f12c4095f7c26f4d4d50b40e67d13fe26350a;hb=f0308b852cda745a74f5135971ad6c0747886df1;hpb=28f13a41b996c6b25376a31083da673244ac6d01 diff --git a/ccan/tal/talloc/talloc.h b/ccan/tal/talloc/talloc.h index 718f12c4..8dfb80e7 100644 --- a/ccan/tal/talloc/talloc.h +++ b/ccan/tal/talloc/talloc.h @@ -185,14 +185,25 @@ typedef TALLOC_CTX tal_t; #define tal_parent(ctx) talloc_parent(ctx) /** - * tal_dup - duplicate an array. + * tal_dup - duplicate an object. + * @ctx: The tal allocated object to be parent of the result (may be NULL). + * @type: the type (should match type of @p!) + * @p: the object to copy (or reparented if take()) + */ +#define tal_dup(ctx, type, p) \ + ((type *)tal_talloc_dup_((ctx), tal_talloc_typechk_(p, type *), \ + sizeof(type), 1, 0, \ + TAL_LABEL(type, ""))) + +/** + * tal_dup_arr - duplicate an array. * @ctx: The tal allocated object to be parent of the result (may be NULL). * @type: the type (should match type of @p!) * @p: the array to copy (or resized & reparented if take()) * @n: the number of sizeof(type) entries to copy. * @extra: the number of extra sizeof(type) entries to allocate. */ -#define tal_dup(ctx, type, p, n, extra) \ +#define tal_dup_arr(ctx, type, p, n, extra) \ ((type *)tal_talloc_dup_((ctx), tal_talloc_typechk_(p, type *), \ sizeof(type), (n), (extra), \ TAL_LABEL(type, "[]")))