summaryrefslogtreecommitdiffstats
path: root/ta
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2016-08-20 14:41:12 +0200
committerwm4 <wm4@nowhere>2016-08-20 14:41:12 +0200
commit969c0115220603b298ea31a2ebe4717ca966b0cc (patch)
tree3304dbeaa250d39042e2afbeb777d61dab7174e7 /ta
parent1a8af89b7d09ad8a84410a3d8efe1a9f695cf9a7 (diff)
downloadmpv-969c0115220603b298ea31a2ebe4717ca966b0cc.tar.bz2
mpv-969c0115220603b298ea31a2ebe4717ca966b0cc.tar.xz
ta: add a helper macro
Diffstat (limited to 'ta')
-rw-r--r--ta/ta.h4
1 files changed, 4 insertions, 0 deletions
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) \