X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fcommon%2Fdynamic-array.h;h=71cf9af189c97a8ef6d30ffabce1f9ba0946928b;hp=0b488a39cd52f95b785f2f3a52ee48f6c3e9cd0b;hb=4624dad0d79b63be45c5c6d7eb2920ba09746f06;hpb=b4b7369fbeb9c037449782132cfcdad1dac435d9 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