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                                                               
      \
        }                                                                       
         \

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to