diff options
author | Ton Roosendaal <ton@blender.org> | 2006-04-09 15:10:11 +0400 |
---|---|---|
committer | Ton Roosendaal <ton@blender.org> | 2006-04-09 15:10:11 +0400 |
commit | 8bfe7629271497382e907d9551ee6fc8b82db8a2 (patch) | |
tree | d7bf7803e55670f4beba1e2d6b587b90400d696d /source/blender/src/editmesh.c | |
parent | e804042c8eb18f61dbd0a2b6285a975a65ace284 (diff) |
Bugfix #3840
Reading DXF curves can result in corrupted edges (with 2 identical
vertex indices). Probably thats OK for autocad or so.. but it made
Blender crash on entering editmode.
Diffstat (limited to 'source/blender/src/editmesh.c')
-rw-r--r-- | source/blender/src/editmesh.c | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/source/blender/src/editmesh.c b/source/blender/src/editmesh.c index f2766b9574d..8206373611e 100644 --- a/source/blender/src/editmesh.c +++ b/source/blender/src/editmesh.c @@ -792,14 +792,17 @@ void make_editMesh() /* make edges */ for(a=0; a<me->totedge; a++, medge++) { eed= addedgelist(evlist[medge->v1], evlist[medge->v2], NULL); - eed->crease= ((float)medge->crease)/255.0; - - if(medge->flag & ME_SEAM) eed->seam= 1; - if(medge->flag & SELECT) eed->f |= SELECT; - if(medge->flag & ME_FGON) eed->h= EM_FGON; // 2 different defines! - if(medge->flag & ME_HIDE) eed->h |= 1; - if(G.scene->selectmode==SCE_SELECT_EDGE) - EM_select_edge(eed, eed->f & SELECT); // force edge selection to vertices, seems to be needed ... + /* eed can be zero when v1 and v2 are identical, dxf import does this... */ + if(eed) { + eed->crease= ((float)medge->crease)/255.0; + + if(medge->flag & ME_SEAM) eed->seam= 1; + if(medge->flag & SELECT) eed->f |= SELECT; + if(medge->flag & ME_FGON) eed->h= EM_FGON; // 2 different defines! + if(medge->flag & ME_HIDE) eed->h |= 1; + if(G.scene->selectmode==SCE_SELECT_EDGE) + EM_select_edge(eed, eed->f & SELECT); // force edge selection to vertices, seems to be needed ... + } } /* make faces */ |