diff --git a/src/apk_defines.h b/src/apk_defines.h index 3dbf79af1c31cbf5645e1bd0c2f582fe37af1359..be6885b7066c5c4a401168101f7d7eb4d4f330ba 100644 --- a/src/apk_defines.h +++ b/src/apk_defines.h @@ -216,10 +216,10 @@ static inline struct apk_array *_apk_array_truncate(struct apk_array *hdr, size_ APK_ARRAY(apk_string_array, char *); -#define apk_array_foreach(iter, array) \ - for (typeof((array)->item[0]) *iter = &(array)->item[0]; iter < &(array)->item[(array)->hdr.num]; iter++) +#define apk_array_foreach(__iter, array) \ + for (typeof((array)->item[0]) *__iter = &(array)->item[0], *__end = &__iter[(array)->hdr.num]; __iter < __end; __iter++) #define apk_array_foreach_item(value, array) \ - for (typeof((array)->item[0]) *__iter = &(array)->item[0], value; __iter < &(array)->item[(array)->hdr.num] && ({ value = *__iter; 1; }); __iter++) + for (typeof((array)->item[0]) *__iter = &(array)->item[0], *__end = &__iter[(array)->hdr.num], value; __iter < __end && ({ value = *__iter; 1; }); __iter++) #define LIST_HEAD(name) struct list_head name = { &name, &name } #define LIST_END (void *) 0xe01