+
+ char *ptr = arl->data;
+
+ if (list->simple_destructor) {
+ for (size_t i = 0; i < list->size; i++) {
+ cx_invoke_simple_destructor(list, ptr);
+ ptr += list->item_size;
+ }
+ }
+ if (list->advanced_destructor) {
+ for (size_t i = 0; i < list->size; i++) {
+ cx_invoke_advanced_destructor(list, ptr);
+ ptr += list->item_size;
+ }
+ }
+