[Bf-blender-cvs] [5d455a7a908] master: Fix (unreported) crash when making object single user in some cases.

Bastien Montagne noreply at git.blender.org
Tue Mar 26 14:42:29 CET 2019


Commit: 5d455a7a908d7d93355cc056af937cd5d3271bf7
Author: Bastien Montagne
Date:   Tue Mar 26 14:39:43 2019 +0100
Branches: master
https://developer.blender.org/rB5d455a7a908d7d93355cc056af937cd5d3271bf7

Fix (unreported) crash when making object single user in some cases.

Issue would happen in case affected object is linked to collections that
are shared between different scenes' ViewLayers. When switching back to
another scene after making single user, you'd get immediate crash.

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

M	source/blender/editors/object/object_relations.c

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

diff --git a/source/blender/editors/object/object_relations.c b/source/blender/editors/object/object_relations.c
index 777770e5812..1f89da51d17 100644
--- a/source/blender/editors/object/object_relations.c
+++ b/source/blender/editors/object/object_relations.c
@@ -1670,9 +1670,14 @@ static void single_object_users(Main *bmain, Scene *scene, View3D *v3d, const in
 
 	/* active camera */
 	ID_NEW_REMAP(scene->camera);
-	if (v3d) ID_NEW_REMAP(v3d->camera);
+	if (v3d) {
+		ID_NEW_REMAP(v3d->camera);
+	}
 
-	BKE_scene_collection_sync(scene);
+	/* Making single user may affect other scenes if they share with current one some collections in their ViewLayer. */
+	for (Scene *sce = bmain->scenes.first; sce != NULL; sce = sce->id.next) {
+		BKE_scene_collection_sync(sce);
+	}
 }
 
 /* not an especially efficient function, only added so the single user



More information about the Bf-blender-cvs mailing list