diff options
-rw-r--r-- | source/blender/blenkernel/intern/font.c | 6 | ||||
-rw-r--r-- | source/blender/bmesh/intern/bmesh_polygon.c | 4 | ||||
-rw-r--r-- | source/blender/bmesh/operators/bmo_connect.c | 24 | ||||
-rw-r--r-- | source/blender/nodes/composite/node_composite_tree.c | 8 |
4 files changed, 25 insertions, 17 deletions
diff --git a/source/blender/blenkernel/intern/font.c b/source/blender/blenkernel/intern/font.c index 0761b8f14c7..f45899ff365 100644 --- a/source/blender/blenkernel/intern/font.c +++ b/source/blender/blenkernel/intern/font.c @@ -808,8 +808,10 @@ struct chartrans *BKE_text_to_curve(Main *bmain, Scene *scene, Object *ob, int m if(linedata2[i]>1) linedata[i]= (linedata3[i]-linedata[i])/(linedata2[i]-1); for (i=0; i<=slen; i++) { - for (j=i; (mem[j]) && (mem[j]!='\n') && - (mem[j]!='\r') && (chartransdata[j].dobreak==0) && (j<slen); j++); + for (j=i; (!ELEM3(mem[j], '\0', '\n', '\r')) && (chartransdata[j].dobreak == 0) && (j < slen); j++) { + /* do nothing */ + } + // if ((mem[j]!='\r') && (mem[j]!='\n') && (mem[j])) { ct->xof+= ct->charnr*linedata[ct->linenr]; // } diff --git a/source/blender/bmesh/intern/bmesh_polygon.c b/source/blender/bmesh/intern/bmesh_polygon.c index 79d229aec1b..19b13a00f6d 100644 --- a/source/blender/bmesh/intern/bmesh_polygon.c +++ b/source/blender/bmesh/intern/bmesh_polygon.c @@ -861,13 +861,13 @@ void BM_face_triangulate(BMesh *bm, BMFace *f, float (*projectverts)[3], f = BM_face_split(bm, l_iter->f, l_iter->prev->v, l_iter->next->v, &newl, NULL); - copy_v3_v3(f->no, l_iter->f->no); - if (!f) { + if (UNLIKELY(!f)) { fprintf(stderr, "%s: triangulator failed to split face! (bmesh internal error)\n", __func__); break; } + copy_v3_v3(f->no, l_iter->f->no); BMO_elem_flag_enable(bm, newl->e, newedge_oflag); BMO_elem_flag_enable(bm, f, newface_oflag); diff --git a/source/blender/bmesh/operators/bmo_connect.c b/source/blender/bmesh/operators/bmo_connect.c index 2beed279f4b..ad15b703041 100644 --- a/source/blender/bmesh/operators/bmo_connect.c +++ b/source/blender/bmesh/operators/bmo_connect.c @@ -167,16 +167,20 @@ static void bm_vert_loop_pair(BMesh *bm, BMVert *v1, BMVert *v2, BMLoop **l1, BM BMIter liter; BMLoop *l; - BM_ITER(l, &liter, bm, BM_LOOPS_OF_VERT, v1) { - if (l->prev->v == v2) { - *l1 = l; - *l2 = l->prev; - return; - } - else if (l->next->v == v2) { - *l1 = l; - *l2 = l->next; - return; + if ((v1->e && v1->e->l) && + (v2->e && v2->e->l)) + { + BM_ITER(l, &liter, bm, BM_LOOPS_OF_VERT, v1) { + if (l->prev->v == v2) { + *l1 = l; + *l2 = l->prev; + return; + } + else if (l->next->v == v2) { + *l1 = l; + *l2 = l->next; + return; + } } } diff --git a/source/blender/nodes/composite/node_composite_tree.c b/source/blender/nodes/composite/node_composite_tree.c index 52dc364e590..8257b850010 100644 --- a/source/blender/nodes/composite/node_composite_tree.c +++ b/source/blender/nodes/composite/node_composite_tree.c @@ -566,10 +566,12 @@ void ntreeCompositExecTree(bNodeTree *ntree, RenderData *rd, int do_preview) ListBase threads; ThreadData thdata; int totnode, curnode, rendering= 1, n; - bNodeTreeExec *exec= ntree->execdata; - + bNodeTreeExec *exec; + if(ntree==NULL) return; - + + exec = ntree->execdata; + if(do_preview) ntreeInitPreview(ntree, 0, 0); |