[Bf-blender-cvs] [e416f417e09] blender2.8: Fix scene deletion code to match master's behavior.

Bastien Montagne noreply at git.blender.org
Thu Oct 12 16:55:20 CEST 2017


Commit: e416f417e095397f37297471061d911927597fac
Author: Bastien Montagne
Date:   Thu Oct 12 16:50:53 2017 +0200
Branches: blender2.8
https://developer.blender.org/rBe416f417e095397f37297471061d911927597fac

Fix scene deletion code to match master's behavior.

Previous code, while more correct than old master one, could still lead
to invalid state in some corner cases (like linked scenes...).

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

M	source/blender/editors/scene/scene_edit.c

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

diff --git a/source/blender/editors/scene/scene_edit.c b/source/blender/editors/scene/scene_edit.c
index 00a56f3dbc7..0ac883d38ca 100644
--- a/source/blender/editors/scene/scene_edit.c
+++ b/source/blender/editors/scene/scene_edit.c
@@ -104,7 +104,11 @@ bool ED_scene_delete(bContext *C, Main *bmain, wmWindow *win, Scene *scene)
 	WM_window_change_active_scene(bmain, C, win, scene_new);
 
 	BKE_libblock_remap(bmain, scene, scene_new, ID_REMAP_SKIP_INDIRECT_USAGE | ID_REMAP_SKIP_NEVER_NULL_USAGE);
-	BKE_libblock_free(bmain, scene);
+
+	id_us_clear_real(&scene->id);
+	if (scene->id.us == 0) {
+		BKE_libblock_free(bmain, scene);
+	}
 
 	return true;
 }



More information about the Bf-blender-cvs mailing list