src/array_list.c

changeset 708
1caed6c9ba68
parent 699
35b2b99ee523
child 735
b686d0c98c62
     1.1 --- a/src/array_list.c	Sun May 21 14:40:05 2023 +0200
     1.2 +++ b/src/array_list.c	Sun May 21 14:56:10 2023 +0200
     1.3 @@ -169,7 +169,24 @@
     1.4  
     1.5  static void cx_arl_destructor(struct cx_list_s *list) {
     1.6      cx_array_list *arl = (cx_array_list *) list;
     1.7 +
     1.8 +    char *ptr = arl->data;
     1.9 +
    1.10 +    if (list->simple_destructor) {
    1.11 +        for (size_t i = 0; i < list->size; i++) {
    1.12 +            cx_invoke_simple_destructor(list, ptr);
    1.13 +            ptr += list->item_size;
    1.14 +        }
    1.15 +    }
    1.16 +    if (list->advanced_destructor) {
    1.17 +        for (size_t i = 0; i < list->size; i++) {
    1.18 +            cx_invoke_advanced_destructor(list, ptr);
    1.19 +            ptr += list->item_size;
    1.20 +        }
    1.21 +    }
    1.22 +
    1.23      cxFree(list->allocator, arl->data);
    1.24 +    cxFree(list->allocator, list);
    1.25  }
    1.26  
    1.27  static size_t cx_arl_insert_array(

mercurial