diff options
author | Leo Tenenbaum <pommicket@gmail.com> | 2019-12-08 19:44:03 -0500 |
---|---|---|
committer | Leo Tenenbaum <pommicket@gmail.com> | 2019-12-08 19:44:03 -0500 |
commit | b1a19ee1531637e806dc20373830106b448337fd (patch) | |
tree | 31916be62105e40f1bac606e15898805692e1d9b /arr.c | |
parent | deaaa5fc851e93f808b21482fb38570a6a4eee7c (diff) |
changed post to preincrement (it actually does make a difference with tcc)
Diffstat (limited to 'arr.c')
-rw-r--r-- | arr.c | 4 |
1 files changed, 2 insertions, 2 deletions
@@ -116,7 +116,7 @@ static void *arr_last_(void *arr, size_t item_sz) { static void arr_remove_last_(void **arr, size_t item_sz) { assert(arr_hdr(*arr)->len); - arr_hdr(*arr)->len--; (void)item_sz; + --arr_hdr(*arr)->len; (void)item_sz; } static void arr_copya_(void **out, void *in, size_t item_sz, Allocator *a) { @@ -157,7 +157,7 @@ You shouldn't rely on this, though, e.g. by doing #define arr_clear(arr) arr_clear_((void **)(arr)), (void)sizeof **arr /* second part makes sure most of the time that you don't accidentally call it without taking the address */ #define arr_last(arr) arr_last_((void *)(arr), sizeof *(arr)) /* OPTIM: maybe replace with less standard-compliant version */ -#define arr_foreach(arr, type, var) for (type *var = arr_len(arr) ? arr : NULL, *var##_foreach_end = arr_last(arr); var; var == var##_foreach_end ? var = NULL : var++) +#define arr_foreach(arr, type, var) for (type *var = arr_len(arr) ? arr : NULL, *var##_foreach_end = arr_last(arr); var; var == var##_foreach_end ? var = NULL : ++var) #define arr_remove_last(arr) arr_remove_last_((void **)(arr), sizeof **(arr)) #define arr_copya(out, in, a) do { assert(sizeof *(in) == sizeof **(out)); arr_copya_((void **)(out), (in), sizeof **(out), (a)); } while(0) |