]> git.sesse.net Git - bcachefs-tools-debian/blobdiff - libbcachefs/darray.h
Update bcachefs sources to 1a739db0b256 bcachefs; guard against overflow in btree...
[bcachefs-tools-debian] / libbcachefs / darray.h
index 6157c53d5bf044516f2373c972275b5df215d26b..e3aba5b61d19b3ec468f66fe6429545a08631110 100644 (file)
@@ -78,11 +78,14 @@ static inline int __darray_make_room(darray_void *d, size_t t_size, size_t more,
 #define darray_remove_item(_d, _pos)                                   \
        array_remove_item((_d)->data, (_d)->nr, (_pos) - (_d)->data)
 
+#define __darray_for_each(_d, _i)                                              \
+       for ((_i) = (_d).data; _i < (_d).data + (_d).nr; _i++)
+
 #define darray_for_each(_d, _i)                                                \
-       for (_i = (_d).data; _i < (_d).data + (_d).nr; _i++)
+       for (typeof(&(_d).data[0]) _i = (_d).data; _i < (_d).data + (_d).nr; _i++)
 
 #define darray_for_each_reverse(_d, _i)                                        \
-       for (_i = (_d).data + (_d).nr - 1; _i >= (_d).data; --_i)
+       for (typeof(&(_d).data[0]) _i = (_d).data + (_d).nr - 1; _i >= (_d).data; --_i)
 
 #define darray_init(_d)                                                        \
 do {                                                                   \