From 9899999e944c0d954dbe5a7aa96c8e1680e7b3f8 Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Fri, 31 May 2019 17:03:40 +0200 Subject: Fix crash on certain changes in edit mode Was missing re-set evaluated mesh to NULL. Fix T65302: Crash after selecting one of multiple materials Fix T65346: Blender crashes when selecting material in editing mode and LookDev view Fix T65344: Blender crashes in edit mode when changing object --- source/blender/blenkernel/intern/object.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) (limited to 'source/blender/blenkernel/intern') diff --git a/source/blender/blenkernel/intern/object.c b/source/blender/blenkernel/intern/object.c index 675239244a8..d4045e57e0b 100644 --- a/source/blender/blenkernel/intern/object.c +++ b/source/blender/blenkernel/intern/object.c @@ -460,13 +460,15 @@ void BKE_object_free_derived_caches(Object *ob) ob->data = ob->runtime.mesh_orig; } - if ((ob->runtime.mesh_eval != NULL && ob->runtime.is_mesh_eval_owned)) { - Mesh *mesh_eval = ob->runtime.mesh_eval; - /* Evaluated mesh points to edit mesh, but does not own it. */ - mesh_eval->edit_mesh = NULL; - BKE_mesh_free(mesh_eval); - BKE_libblock_free_data(&mesh_eval->id, false); - MEM_freeN(mesh_eval); + if (ob->runtime.mesh_eval != NULL) { + if (ob->runtime.is_mesh_eval_owned) { + Mesh *mesh_eval = ob->runtime.mesh_eval; + /* Evaluated mesh points to edit mesh, but does not own it. */ + mesh_eval->edit_mesh = NULL; + BKE_mesh_free(mesh_eval); + BKE_libblock_free_data(&mesh_eval->id, false); + MEM_freeN(mesh_eval); + } ob->runtime.mesh_eval = NULL; } if (ob->runtime.mesh_deform_eval != NULL) { -- cgit v1.2.3