diff options
| author | 2025-11-30 13:10:30 -0500 | |
|---|---|---|
| committer | 2025-11-30 13:10:30 -0500 | |
| commit | c54cfde860f3449d37d19255f399b216f00a871c (patch) | |
| tree | a6e10b3c10203158ad70e9c04bee73c68e8d47c2 /src | |
| parent | 0d1bc6cf7483d2a53c2d5f04d15a0ce3da85f29b (diff) | |
| download | libalabaster-c54cfde860f3449d37d19255f399b216f00a871c.tar.gz libalabaster-c54cfde860f3449d37d19255f399b216f00a871c.tar.bz2 libalabaster-c54cfde860f3449d37d19255f399b216f00a871c.zip | |
array: Try to avoid common shadowing case
Signed-off-by: Andrew Opalach <andrew@akon.city>
Diffstat (limited to 'src')
| -rw-r--r-- | src/array.c | 60 |
1 files changed, 30 insertions, 30 deletions
diff --git a/src/array.c b/src/array.c index 8c7f8d3..bde54a8 100644 --- a/src/array.c +++ b/src/array.c @@ -77,41 +77,41 @@ } while (0) #ifdef AL_HAVE_GNU_EXTENSIONS -#define al_array_contains(array, needle) \ - ({ \ - bool contains = false; \ - for (u32 i = 0; i < (array).count; i++) { \ - if (al_array_at(array, i) == needle) { \ - contains = true; \ - break; \ - } \ - } \ - contains; \ +#define al_array_contains(array, needle) \ + ({ \ + bool was_contained = false; \ + for (u32 ic = 0; ic < (array).count; ic++) { \ + if (al_array_at(array, ic) == needle) { \ + was_contained = true; \ + break; \ + } \ + } \ + was_contained; \ }) -#define al_array_remove(array, elem) \ +#define al_array_remove(array, elem) \ + ({ \ + bool did_remove = false; \ + for (u32 ir = 0; ir < (array).count; ir++) { \ + if (al_array_at(array, ir) == elem) { \ + al_array_remove_at(array, ir); \ + did_remove = true; \ + break; \ + } \ + } \ + did_remove; \ + }) + +#define al_array_remove_all(array, elem) \ ({ \ - bool removed = false; \ - for (u32 i = 0; i < (array).count; i++) { \ - if (al_array_at(array, i) == elem) { \ - al_array_remove_at(array, i); \ - removed = true; \ - break; \ + bool did_remove = false; \ + for (u32 ir = (array).count; ir-- > 0;) { \ + if (al_array_at(array, ir) == elem) { \ + al_array_remove_at(array, ir); \ + did_remove = true; \ } \ } \ - removed; \ - }) - -#define al_array_remove_all(array, elem) \ - ({ \ - bool removed = false; \ - for (u32 i = (array).count; i-- > 0;) { \ - if (al_array_at(array, i) == elem) { \ - al_array_remove_at(array, i); \ - removed = true; \ - } \ - } \ - removed; \ + did_remove; \ }) #endif |