From a5156d139e2bd0a9db80ffd097ceb22e22ece16b Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Sun, 4 Apr 2010 10:37:47 +0000 Subject: Fix crash entering edit mode on linked duplicate meshes with dupliverts. The flag mode & OB_MODE_EDIT only indicates that this object is being edited by the user, not if the mesh is in editmode or not, it should check for the existence of me->edit_mesh. Also corrected two other places for this. --- source/blender/blenkernel/intern/anim.c | 4 ++-- source/blender/blenkernel/intern/object.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'source/blender/blenkernel') diff --git a/source/blender/blenkernel/intern/anim.c b/source/blender/blenkernel/intern/anim.c index e26072deb76..b687062fe15 100644 --- a/source/blender/blenkernel/intern/anim.c +++ b/source/blender/blenkernel/intern/anim.c @@ -837,7 +837,7 @@ static void vertex_duplilist(ListBase *lb, ID *id, Scene *scene, Object *par, fl /* mballs have a different dupli handling */ if(ob->type!=OB_MBALL) ob->flag |= OB_DONE; /* doesnt render */ - if(par->mode & OB_MODE_EDIT) { + if(me->edit_mesh) { dm->foreachMappedVert(dm, vertex_dupli__mapFunc, (void*) &vdd); } else { @@ -1048,7 +1048,7 @@ static void face_duplilist(ListBase *lb, ID *id, Scene *scene, Object *par, floa else go= go->next; /* group loop */ } - if(par->mode & OB_MODE_EDIT) { + if(em) { MEM_freeN(mface); MEM_freeN(mvert); } diff --git a/source/blender/blenkernel/intern/object.c b/source/blender/blenkernel/intern/object.c index bb7c77408ac..ac679adb9c1 100644 --- a/source/blender/blenkernel/intern/object.c +++ b/source/blender/blenkernel/intern/object.c @@ -2502,7 +2502,7 @@ void object_handle_update(Scene *scene, Object *ob) BKE_animsys_evaluate_animdata(data_id, adt, ctime, ADT_RECALC_DRIVERS); // here was vieweditdatamask? XXX - if(ob->mode & OB_MODE_EDIT) { + if(em) { makeDerivedMesh(scene, ob, em, CD_MASK_BAREMESH); BKE_mesh_end_editmesh(ob->data, em); } else -- cgit v1.2.3