1.1 --- a/src/cx/list.h Sun Sep 26 18:01:51 2021 +0200 1.2 +++ b/src/cx/list.h Sun Sep 26 18:31:24 2021 +0200 1.3 @@ -38,31 +38,28 @@ 1.4 1.5 typedef int(*CxListComparator)(void const *left, void const *right); 1.6 1.7 +typedef struct cx_list_s cx_list_s; 1.8 + 1.9 typedef struct { 1.10 + int (*add)(cx_list_s *list, void *elem); 1.11 + 1.12 + int (*insert)(cx_list_s *list, size_t index, void *elem); 1.13 + 1.14 + void *(*remove)(cx_list_s *list, size_t index); 1.15 + 1.16 + size_t (*find)(cx_list_s *list, void *elem); 1.17 + 1.18 + void *(*last)(cx_list_s *list); 1.19 +} cx_list_class; 1.20 + 1.21 +struct cx_list_s { 1.22 + cx_list_class *cl; 1.23 CxAllocator allocator; 1.24 CxListComparator cmpfunc; 1.25 size_t itemsize; 1.26 size_t size; 1.27 size_t capacity; 1.28 - char listdata[]; 1.29 -} cx_list; 1.30 - 1.31 -typedef struct { 1.32 - int (*add)(cx_list *list, void *elem); 1.33 - 1.34 - int (*insert)(cx_list *list, size_t index, void *elem); 1.35 - 1.36 - void *(*remove)(cx_list *list, size_t index); 1.37 - 1.38 - size_t (*find)(cx_list *list, void *elem); 1.39 - 1.40 - void *(*last)(cx_list *list); 1.41 -} cx_list_class; 1.42 - 1.43 -typedef struct { 1.44 - cx_list_class *cl; 1.45 - cx_list data; 1.46 -} cx_list_s; 1.47 +}; 1.48 1.49 typedef cx_list_s *CxList; 1.50