From 969c0115220603b298ea31a2ebe4717ca966b0cc Mon Sep 17 00:00:00 2001 From: wm4 Date: Sat, 20 Aug 2016 14:41:12 +0200 Subject: ta: add a helper macro --- ta/ta.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'ta') diff --git a/ta/ta.h b/ta/ta.h index c21e0b0e39..8fbb9ea171 100644 --- a/ta/ta.h +++ b/ta/ta.h @@ -94,6 +94,9 @@ bool ta_vasprintf_append_buffer(char **str, const char *fmt, va_list ap) TA_PRF( #define ta_steal(ta_parent, ptr) (TA_TYPEOF(ptr))ta_steal_(ta_parent, ptr) +#define ta_dup_ptrtype(ta_parent, ptr) \ + (TA_TYPEOF(ptr))ta_memdup(ta_parent, ptr, sizeof(*(ptr))) + // Ugly macros that crash on OOM. // All of these mirror real functions (with a 'x' added after the 'ta_' // prefix), and the only difference is that they will call abort() on allocation @@ -121,6 +124,7 @@ bool ta_vasprintf_append_buffer(char **str, const char *fmt, va_list ap) TA_PRF( #define ta_xnew_array_size(...) ta_oom_p(ta_new_array_size(__VA_ARGS__)) #define ta_xnew_ptrtype(...) ta_oom_g(ta_new_ptrtype(__VA_ARGS__)) #define ta_xnew_array_ptrtype(...) ta_oom_g(ta_new_array_ptrtype(__VA_ARGS__)) +#define ta_xdup_ptrtype(...) ta_oom_g(ta_dup_ptrtype(__VA_ARGS__)) #define ta_xsteal(ta_parent, ptr) (TA_TYPEOF(ptr))ta_xsteal_(ta_parent, ptr) #define ta_xrealloc(ta_parent, ptr, type, count) \ -- cgit v1.2.3