X-Git-Url: http://git.efficios.com/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fcommon%2Fdynamic-array.h;h=71cf9af189c97a8ef6d30ffabce1f9ba0946928b;hp=0b488a39cd52f95b785f2f3a52ee48f6c3e9cd0b;hb=2463b7879c00298daa79744cdaae82ac061a4ed8;hpb=3a4595c2469472dee1656cde5f8882c2123efd3c;ds=sidebyside diff --git a/src/common/dynamic-array.h b/src/common/dynamic-array.h index 0b488a39c..71cf9af18 100644 --- a/src/common/dynamic-array.h +++ b/src/common/dynamic-array.h @@ -140,6 +140,23 @@ void *lttng_dynamic_pointer_array_get_pointer( return *element; } +/* + * Returns the pointer at index `index`, sets the array slot to NULL. Does not + * run the destructor. + */ + +static inline +void *lttng_dynamic_pointer_array_steal_pointer( + struct lttng_dynamic_pointer_array *array, size_t index) +{ + void **p_element = lttng_dynamic_array_get_element(&array->array, index); + void *element = *p_element; + + *p_element = NULL; + + return element; +} + /* * Add a pointer to the end of a dynamic pointer array. The array's element * count is increased by one and its underlying capacity is adjusted