diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2019-05-31 18:03:40 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2019-05-31 18:06:06 +0300 |
commit | 9899999e944c0d954dbe5a7aa96c8e1680e7b3f8 (patch) | |
tree | c02b12c8cdcda16d813b2923836f9962cd9d1c32 | |
parent | 4620bd4f799cbade2e8cd6027c37fb942d04c64a (diff) |
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
-rw-r--r-- | source/blender/blenkernel/intern/object.c | 16 |
1 files changed, 9 insertions, 7 deletions
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) { |