X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libbcachefs%2Fvstructs.h;h=2ad338e282da8263f2025f5a9241d37767f0b1d0;hb=f76d246fff1c3c5b091fb2b910067d893620dc5e;hp=a6561b4b36a6e15cf020a82ba2c6741659dbf757;hpb=b7453196fe82ee70a3ec657847e974450fdac8ad;p=bcachefs-tools-debian diff --git a/libbcachefs/vstructs.h b/libbcachefs/vstructs.h index a6561b4..2ad338e 100644 --- a/libbcachefs/vstructs.h +++ b/libbcachefs/vstructs.h @@ -48,14 +48,14 @@ ((void *) ((u64 *) (_s)->_data + __vstruct_u64s(_s))) #define vstruct_for_each(_s, _i) \ - for (_i = (_s)->start; \ + for (typeof(&(_s)->start[0]) _i = (_s)->start; \ _i < vstruct_last(_s); \ _i = vstruct_next(_i)) -#define vstruct_for_each_safe(_s, _i, _t) \ - for (_i = (_s)->start; \ - _i < vstruct_last(_s) && (_t = vstruct_next(_i), true); \ - _i = _t) +#define vstruct_for_each_safe(_s, _i) \ + for (typeof(&(_s)->start[0]) _next, _i = (_s)->start; \ + _i < vstruct_last(_s) && (_next = vstruct_next(_i), true); \ + _i = _next) #define vstruct_idx(_s, _idx) \ ((typeof(&(_s)->start[0])) ((_s)->_data + (_idx)))