[Bf-blender-cvs] [074c695a0d4] blender-v3.2-release: Fix T98072: Regression: When appending a Scene, the Collections that are excluded get instanced into Current Scene.
Bastien Montagne
noreply at git.blender.org
Fri May 13 18:07:20 CEST 2022
Commit: 074c695a0d4de88550be71181690639ab6b16dcf
Author: Bastien Montagne
Date: Fri May 13 18:05:44 2022 +0200
Branches: blender-v3.2-release
https://developer.blender.org/rB074c695a0d4de88550be71181690639ab6b16dcf
Fix T98072: Regression: When appending a Scene, the Collections that are excluded get instanced into Current Scene.
This was due to using `BKE_scene_has_object` function, which uses the
cache of bases of the viewlayers, which do not have entries for the
content of excluded collections... Now use
`BKE_collection_has_object_recursive` instead.
===================================================================
M source/blender/blenkernel/intern/blendfile_link_append.c
===================================================================
diff --git a/source/blender/blenkernel/intern/blendfile_link_append.c b/source/blender/blenkernel/intern/blendfile_link_append.c
index 555c4690308..f9eea52360e 100644
--- a/source/blender/blenkernel/intern/blendfile_link_append.c
+++ b/source/blender/blenkernel/intern/blendfile_link_append.c
@@ -400,7 +400,9 @@ typedef struct LooseDataInstantiateContext {
static bool object_in_any_scene(Main *bmain, Object *ob)
{
LISTBASE_FOREACH (Scene *, sce, &bmain->scenes) {
- if (BKE_scene_object_find(sce, ob)) {
+ /* #BKE_scene_has_object checks bases cache of the scenes' viewlayer, not actual content of
+ * their collections. */
+ if (BKE_collection_has_object_recursive(sce->master_collection, ob)) {
return true;
}
}
More information about the Bf-blender-cvs
mailing list