From f16199d479189f1f142aebecf896182a7276c483 Mon Sep 17 00:00:00 2001 From: Dalai Felinto Date: Tue, 7 Nov 2017 12:50:04 -0200 Subject: 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. --- source/blender/blenlib/BLI_iterator.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'source/blender/blenlib/BLI_iterator.h') diff --git a/source/blender/blenlib/BLI_iterator.h b/source/blender/blenlib/BLI_iterator.h index dffdeec949a..d8929b6e73a 100644 --- a/source/blender/blenlib/BLI_iterator.h +++ b/source/blender/blenlib/BLI_iterator.h @@ -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; \ -- cgit v1.2.3