Commit: b89b1b58b20dbdd0ba0d1c569f8bc0933a9005e0
Author: Dalai Felinto
Date:   Tue Jan 3 11:48:42 2017 +0100
Branches: render-layers
https://developer.blender.org/rBb89b1b58b20dbdd0ba0d1c569f8bc0933a9005e0

>From review: proper handle of library_query

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

M       source/blender/blenkernel/intern/library_query.c

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

diff --git a/source/blender/blenkernel/intern/library_query.c 
b/source/blender/blenkernel/intern/library_query.c
index 9869f10..2dc9716 100644
--- a/source/blender/blenkernel/intern/library_query.c
+++ b/source/blender/blenkernel/intern/library_query.c
@@ -386,13 +386,24 @@ void BKE_library_foreach_ID_link(ID *id, 
LibraryIDLinkCallback callback, void *u
                                        CALLBACK_INVOKE(base->object, 
IDWALK_USER);
                                }
 
+                               SceneCollection *sc;
+                               FOREACH_SCENE_COLLECTION(scene, sc)
                                {
-                                       Object* ob;
-                                       FOREACH_SCENE_OBJECT(scene, ob)
-                                       {
-                                               CALLBACK_INVOKE(ob, 
IDWALK_USER);
+                                       for (LinkData *link = 
sc->objects.first; link; link = link->next) {
+                                               CALLBACK_INVOKE_ID(link->data, 
IDWALK_USER);
+                                       }
+
+                                       for (LinkData *link = 
sc->filter_objects.first; link; link = link->next) {
+                                               CALLBACK_INVOKE_ID(link->data, 
IDWALK_USER);
+                                       }
+                               }
+                               FOREACH_SCENE_COLLECTION_END
+
+                               SceneLayer *sl;
+                               for (sl = scene->render_layers.first; sl; sl = 
sl->next) {
+                                       for (ObjectBase *ob_base = 
sl->object_bases.first; ob_base; ob_base = ob_base->next) {
+                                               
CALLBACK_INVOKE(ob_base->object, IDWALK_NOP);
                                        }
-                                       FOREACH_SCENE_OBJECT_END
                                }
 
                                for (TimeMarker *marker = scene->markers.first; 
marker; marker = marker->next) {

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

Reply via email to