From e416f417e095397f37297471061d911927597fac Mon Sep 17 00:00:00 2001 From: Bastien Montagne Date: Thu, 12 Oct 2017 16:50:53 +0200 Subject: 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...). --- source/blender/editors/scene/scene_edit.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'source/blender/editors/scene') 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; } -- cgit v1.2.3