diff --git a/core.h b/core.h index 06cbe9a..8173228 100644 --- a/core.h +++ b/core.h @@ -153,9 +153,9 @@ DefineList(string, String); if ((list)->length < (list)->capacity) { \ (list)->data[(list)->length++] = (element); \ } -#define ZeroListFull(list) memset((list)->data, 0, (list)->length * sizeof(T)) +#define ZeroListFull(list) memset((list)->data, 0, (list)->length * MemberTypeUnderlying(typeof(list), data)) #define ZeroList(list) (list)->length = 0; \ - memset((list)->data, 0, (list)->length * sizeof(T)); + memset((list)->data, 0, (list)->length * MemberTypeUnderlying(typeof(list), data)); #define ListSlice(list, start, stop) (stop > list.length || start > stop ? {0} : { list.data + start, stop - start, stop - start, }) #define ListTail(list, start) ListSlice(list, list.length)