From 6afa4da928d5d791b0741cfbf47304ea66ad6e34 Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Sun, 12 Feb 2012 11:21:35 +0000 Subject: Fix #30152: Several drag and drop of image on mesh crashes Issue was caused by making and loading editMesh in drop_named_image_invoke, which lead to freeing/changing pointers used by CustomData layers. Some of this pointers might be used by DerivedMesh, so we need to update DerivedMesh after loading EditMesh. --- source/blender/editors/mesh/mesh_data.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/source/blender/editors/mesh/mesh_data.c b/source/blender/editors/mesh/mesh_data.c index b10fbaf69b7..09ae5e08d60 100644 --- a/source/blender/editors/mesh/mesh_data.c +++ b/source/blender/editors/mesh/mesh_data.c @@ -403,6 +403,10 @@ static int drop_named_image_invoke(bContext *C, wmOperator *op, wmEvent *event) free_editMesh(me->edit_mesh); MEM_freeN(me->edit_mesh); me->edit_mesh= NULL; + + /* load_editMesh free's pointers used by CustomData layers which might be used by DerivedMesh too, + * so signal to re-create DerivedMesh here (sergey) */ + DAG_id_tag_update(&me->id, 0); } /* dummie drop support; ensure view shows a result :) */ -- cgit v1.2.3