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.
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -485,7 +485,7 @@ static void rna_Object_active_material_index_set(PointerRNA *ptr, int value)
|
||||
Object *ob= (Object*)ptr->id.data;
|
||||
ob->actcol= value+1;
|
||||
|
||||
if((ob->mode & OB_MODE_EDIT) && ob->type==OB_MESH) {
|
||||
if(ob->type==OB_MESH) {
|
||||
Mesh *me= ob->data;
|
||||
|
||||
if(me->edit_mesh)
|
||||
|
||||
Reference in New Issue
Block a user