From 918d68b44354b38f45c796d2987b9e80a6566c3a Mon Sep 17 00:00:00 2001 From: Tyge Date: Mon, 20 Apr 2020 10:10:56 +0200 Subject: Small opt. in cslist, update readme.md --- README.md | 4 ++-- stc/cdefs.h | 4 ++-- stc/cslist.h | 3 +-- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 57109886..e6f2b1dd 100644 --- a/README.md +++ b/README.md @@ -96,10 +96,10 @@ int main() { cmap_si_put(&nums, "Groovy", 200); // overwrite previous // iterate the map: - for (cmap_si_iter_t i = cmap_si_begin(nums); i.item != cmap_si_end(nums).item; i = cmap_si_next(i)) + for (cmap_si_iter_t i = cmap_si_begin(&nums); i.item; i = cmap_si_next(i)) printf("%s: %d\n", i.item->key.str, i.item->value); - // or rather use the short form: + // or rather use the shorter form: c_foreach (i, cmap_si, nums) printf("%s: %d\n", i.item->key.str, i.item->value); diff --git a/stc/cdefs.h b/stc/cdefs.h index bf010db9..3aa8136e 100644 --- a/stc/cdefs.h +++ b/stc/cdefs.h @@ -53,8 +53,8 @@ #define c_defaultEquals(x, y) (memcmp(x, y, sizeof(*(y))) == 0) #define c_defaultDestroy(p) ((void)0) -#define c_foreach(it, ctag, con) \ - for (ctag##_iter_t it = ctag##_begin(&con); it.item; it = ctag##_next(it)) +#define c_foreach(it, prefix, container) \ + for (prefix##_iter_t it = prefix##_begin(&container); it.item; it = prefix##_next(it)) /* One-byte-at-a-time hash based on Murmur's mix */ static inline uint32_t c_defaultHash(const void *data, size_t len) { diff --git a/stc/cslist.h b/stc/cslist.h index b5674722..dd321f00 100644 --- a/stc/cslist.h +++ b/stc/cslist.h @@ -114,8 +114,7 @@ \ static inline cslist_##tag##_iter_t \ cslist_##tag##_next(cslist_##tag##_iter_t it) { \ - if ((it.item = it.item->next) == (*it._last)->next) \ - it.item = NULL; \ + it.item = it.item == *it._last ? NULL : it.item->next; \ return it; \ } \ \ -- cgit v1.2.3