[Bf-blender-cvs] [ff4dc7abfa] blender2.8: Change ITER_BEGIN to work in C++ (include object type in the macro)

Dalai Felinto noreply at git.blender.org
Thu Feb 9 15:31:24 CET 2017


Commit: ff4dc7abfad6f4dc0f14ae158544f69ee981b7fe
Author: Dalai Felinto
Date:   Thu Feb 9 15:26:28 2017 +0100
Branches: blender2.8
https://developer.blender.org/rBff4dc7abfad6f4dc0f14ae158544f69ee981b7fe

Change ITER_BEGIN to work in C++ (include object type in the macro)

===================================================================

M	source/blender/blenkernel/BKE_collection.h
M	source/blender/blenkernel/BKE_layer.h
M	source/blender/blenlib/BLI_iterator.h

===================================================================

diff --git a/source/blender/blenkernel/BKE_collection.h b/source/blender/blenkernel/BKE_collection.h
index c3f461dacd..90904cdfdd 100644
--- a/source/blender/blenkernel/BKE_collection.h
+++ b/source/blender/blenkernel/BKE_collection.h
@@ -70,7 +70,7 @@ void BKE_scene_objects_Iterator_end(struct Iterator *iter);
 	ITER_BEGIN(BKE_scene_collections_Iterator_begin,                          \
 	           BKE_scene_collections_Iterator_next,                           \
 	           BKE_scene_collections_Iterator_end,                            \
-	           scene, _sc)
+	           scene, SceneCollection, _sc)
 
 #define FOREACH_SCENE_COLLECTION_END                                          \
 	ITER_END
@@ -79,7 +79,7 @@ void BKE_scene_objects_Iterator_end(struct Iterator *iter);
 	ITER_BEGIN(BKE_scene_objects_Iterator_begin,                              \
 	           BKE_scene_objects_Iterator_next,                               \
 	           BKE_scene_objects_Iterator_end,                                \
-	           scene, _ob)
+	           scene, Object, _ob)
 
 #define FOREACH_SCENE_OBJECT_END                                              \
 	ITER_END
diff --git a/source/blender/blenkernel/BKE_layer.h b/source/blender/blenkernel/BKE_layer.h
index 51fe28a8be..9bee353bb3 100644
--- a/source/blender/blenkernel/BKE_layer.h
+++ b/source/blender/blenkernel/BKE_layer.h
@@ -138,7 +138,7 @@ void BKE_visible_bases_Iterator_end(Iterator *iter);
 	ITER_BEGIN(BKE_selected_objects_Iterator_begin,                           \
 	           BKE_selected_objects_Iterator_next,                            \
 	           BKE_selected_objects_Iterator_end,                             \
-	           sl, _ob)
+	           sl, Object, _ob)
 
 #define FOREACH_SELECTED_OBJECT_END                                           \
 	ITER_END
@@ -147,7 +147,7 @@ void BKE_visible_bases_Iterator_end(Iterator *iter);
 	ITER_BEGIN(BKE_visible_objects_Iterator_begin,                            \
 	           BKE_visible_objects_Iterator_next,                             \
 	           BKE_visible_objects_Iterator_end,                              \
-	           sl, _ob)
+	           sl, Object, _ob)
 
 #define FOREACH_VISIBLE_OBJECT_END                                            \
 	ITER_END
@@ -157,7 +157,7 @@ void BKE_visible_bases_Iterator_end(Iterator *iter);
 	ITER_BEGIN(BKE_visible_bases_Iterator_begin,                              \
 	           BKE_visible_bases_Iterator_next,                               \
 	           BKE_visible_bases_Iterator_end,                                \
-	           sl, _object_base)
+	           sl, Base, _object_base)
 
 #define FOREACH_VISIBLE_BASE_END                                              \
 	ITER_END
@@ -191,7 +191,7 @@ void BKE_visible_bases_Iterator_end(Iterator *iter);
 	    func_end = BKE_scene_objects_Iterator_end;                            \
 	    data_in = scene;                                                      \
     }                                                                         \
-	ITER_BEGIN(func_begin, func_next, func_end, data_in, _ob)
+	ITER_BEGIN(func_begin, func_next, func_end, data_in, Object, _ob)
 
 
 #define FOREACH_OBJECT_FLAG_END                                               \
diff --git a/source/blender/blenlib/BLI_iterator.h b/source/blender/blenlib/BLI_iterator.h
index cfa303bb1c..d154b81ac8 100644
--- a/source/blender/blenlib/BLI_iterator.h
+++ b/source/blender/blenlib/BLI_iterator.h
@@ -36,7 +36,7 @@ typedef struct Iterator {
 typedef void (*IteratorCb)(Iterator *iter);
 typedef void (*IteratorBeginCb)(Iterator *iter, void *data_in);
 
-#define ITER_BEGIN(callback_begin, callback_next, callback_end, _data_in, _data_out) \
+#define ITER_BEGIN(callback_begin, callback_next, callback_end, _data_in, _type, _data_out) \
 {                                                                                    \
 	IteratorCb callback_end_func = callback_end;                                     \
 	Iterator iter_macro;                                                             \
@@ -44,7 +44,7 @@ typedef void (*IteratorBeginCb)(Iterator *iter, void *data_in);
 	     iter_macro.valid;                                                           \
 	     callback_next(&iter_macro))                                                 \
     {                                                                                \
-		_data_out = iter_macro.current;
+		_data_out = (_type *) iter_macro.current;
 
 #define ITER_END                                                                     \
 	}                                                                                \




More information about the Bf-blender-cvs mailing list