diff options
author | Campbell Barton <ideasman42@gmail.com> | 2015-11-10 12:25:05 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2015-11-10 12:27:27 +0300 |
commit | 738bc300c7596b649a8974428b2569f2ca6483eb (patch) | |
tree | cfff2452decb66fbfb6b08e128a3855010696744 /source | |
parent | e26a0c5782cfdbd5f3372eb7c142b983ad570332 (diff) |
Fix T46738: Crash adding hook to linked mesh dupli
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/editors/mesh/editmesh_utils.c | 4 | ||||
-rw-r--r-- | source/blender/editors/object/object_hook.c | 2 |
2 files changed, 6 insertions, 0 deletions
diff --git a/source/blender/editors/mesh/editmesh_utils.c b/source/blender/editors/mesh/editmesh_utils.c index f102cf2b259..148398fca5c 100644 --- a/source/blender/editors/mesh/editmesh_utils.c +++ b/source/blender/editors/mesh/editmesh_utils.c @@ -380,6 +380,10 @@ void EDBM_mesh_make(ToolSettings *ts, Object *ob) EDBM_selectmode_flush(me->edit_btmesh); } +/** + * \warning This can invalidate the #DerivedMesh cache of other objects (for linked duplicates). + * Most callers should run #DAG_id_tag_update on \a ob, see: T46738. + */ void EDBM_mesh_load(Object *ob) { Mesh *me = ob->data; diff --git a/source/blender/editors/object/object_hook.c b/source/blender/editors/object/object_hook.c index 7b7f91b974d..03984b7a528 100644 --- a/source/blender/editors/object/object_hook.c +++ b/source/blender/editors/object/object_hook.c @@ -318,6 +318,8 @@ static bool object_hook_index_array(Scene *scene, Object *obedit, EDBM_mesh_load(obedit); EDBM_mesh_make(scene->toolsettings, obedit); + DAG_id_tag_update(&obedit->id, 0); + em = me->edit_btmesh; EDBM_mesh_normals_update(em); |