Fix jumps-dependent-on-uninitialized-variable for iterators
We cannot have iter->valid unitialized, but we need to be sure it is set to true on begin. Bug found by Sergey Sharybin.
This commit is contained in:
parent
98ed20aafd
commit
f16199d479
@ -1800,6 +1800,7 @@ void BKE_renderable_objects_iterator_begin(BLI_Iterator *iter, void *data_in)
|
||||
|
||||
data->iter.set = NULL;
|
||||
|
||||
iter->valid = true;
|
||||
iter->data = data_in;
|
||||
BKE_renderable_objects_iterator_next(iter);
|
||||
}
|
||||
|
@ -43,10 +43,12 @@ typedef void (*IteratorBeginCb)(BLI_Iterator *iter, void *data_in);
|
||||
IteratorCb callback_end_func = callback_end; \
|
||||
BLI_Iterator iter_macro; \
|
||||
iter_macro.skip = false; \
|
||||
iter_macro.valid = false; \
|
||||
for (callback_begin(&iter_macro, (_data_in)); \
|
||||
iter_macro.valid; \
|
||||
callback_next(&iter_macro)) \
|
||||
{ \
|
||||
BLI_assert(iter_macro.valid); \
|
||||
if (iter_macro.skip) { \
|
||||
iter_macro.skip = false; \
|
||||
continue; \
|
||||
|
Loading…
Reference in New Issue
Block a user