[Bf-blender-cvs] [3bdd5551] render-layers: Massive fixup on BLI_iterator and the iterators using it
Dalai Felinto
noreply at git.blender.org
Wed Jan 4 09:41:15 CET 2017
Commit: 3bdd555159a79e1c533068c6e75d7f7f23b8cff9
Author: Dalai Felinto
Date: Tue Jan 3 18:02:58 2017 +0100
Branches: render-layers
https://developer.blender.org/rB3bdd555159a79e1c533068c6e75d7f7f23b8cff9
Massive fixup on BLI_iterator and the iterators using it
===================================================================
M source/blender/blenkernel/BKE_collection.h
M source/blender/blenkernel/intern/collection.c
M source/blender/blenlib/BLI_iterator.h
===================================================================
diff --git a/source/blender/blenkernel/BKE_collection.h b/source/blender/blenkernel/BKE_collection.h
index 267e621..5f09ad9 100644
--- a/source/blender/blenkernel/BKE_collection.h
+++ b/source/blender/blenkernel/BKE_collection.h
@@ -75,9 +75,9 @@ void BKE_scene_objects_Iterator_end(struct Iterator *iter);
#define FOREACH_SCENE_OBJECT(scene, _ob) \
ITER_BEGIN(BKE_scene_objects_Iterator_begin, \
- BKE_scene_objects_Iterator_next, \
- BKE_scene_objects_Iterator_end, \
- scene, _ob)
+ BKE_scene_objects_Iterator_next, \
+ BKE_scene_objects_Iterator_end, \
+ scene, _ob)
#define FOREACH_SCENE_OBJECT_END \
ITER_END
diff --git a/source/blender/blenkernel/intern/collection.c b/source/blender/blenkernel/intern/collection.c
index d1a23da..853e8df 100644
--- a/source/blender/blenkernel/intern/collection.c
+++ b/source/blender/blenkernel/intern/collection.c
@@ -345,6 +345,10 @@ void BKE_scene_objects_Iterator_begin(Iterator *iter, void *data_in)
SceneCollection *sc = data->scene_collection_iter.current;
iter->current = sc->objects.first;
+
+ if (iter->current == NULL) {
+ BKE_scene_objects_Iterator_next(iter);
+ }
}
/**
diff --git a/source/blender/blenlib/BLI_iterator.h b/source/blender/blenlib/BLI_iterator.h
index 10ad49b..cfa303b 100644
--- a/source/blender/blenlib/BLI_iterator.h
+++ b/source/blender/blenlib/BLI_iterator.h
@@ -44,7 +44,7 @@ typedef void (*IteratorBeginCb)(Iterator *iter, void *data_in);
iter_macro.valid; \
callback_next(&iter_macro)) \
{ \
- _data_out = iter_macro.data;
+ _data_out = iter_macro.current;
#define ITER_END \
} \
More information about the Bf-blender-cvs
mailing list