[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [44423] trunk/blender/source/blender: bugfix

Campbell Barton ideasman42 at gmail.com
Sat Feb 25 10:06:19 CET 2012


Revision: 44423
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=44423
Author:   campbellbarton
Date:     2012-02-25 09:06:17 +0000 (Sat, 25 Feb 2012)
Log Message:
-----------
bugfix
* ntreeCompositExecTree accessed 'ntree' before NULL check.
* BM_face_triangulate accessed 'f' before NULL check.

also quiet warning in BKE_text_to_curve() and add a check for BMesh bridge loops so it knows quicker if it can copy loop data or not.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/font.c
    trunk/blender/source/blender/bmesh/intern/bmesh_polygon.c
    trunk/blender/source/blender/bmesh/operators/bmo_connect.c
    trunk/blender/source/blender/nodes/composite/node_composite_tree.c

Modified: trunk/blender/source/blender/blenkernel/intern/font.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/font.c	2012-02-25 09:02:05 UTC (rev 44422)
+++ trunk/blender/source/blender/blenkernel/intern/font.c	2012-02-25 09:06:17 UTC (rev 44423)
@@ -808,8 +808,10 @@
 				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];
 //				}

Modified: trunk/blender/source/blender/bmesh/intern/bmesh_polygon.c
===================================================================
--- trunk/blender/source/blender/bmesh/intern/bmesh_polygon.c	2012-02-25 09:02:05 UTC (rev 44422)
+++ trunk/blender/source/blender/bmesh/intern/bmesh_polygon.c	2012-02-25 09:06:17 UTC (rev 44423)
@@ -861,13 +861,13 @@
 			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);
 			

Modified: trunk/blender/source/blender/bmesh/operators/bmo_connect.c
===================================================================
--- trunk/blender/source/blender/bmesh/operators/bmo_connect.c	2012-02-25 09:02:05 UTC (rev 44422)
+++ trunk/blender/source/blender/bmesh/operators/bmo_connect.c	2012-02-25 09:06:17 UTC (rev 44423)
@@ -167,17 +167,21 @@
 	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;
+	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;
+			}
 		}
-		else if (l->next->v == v2) {
-			*l1 = l;
-			*l2 = l->next;
-			return;
-		}
 	}
 
 	/* fallback to _any_ loop */

Modified: trunk/blender/source/blender/nodes/composite/node_composite_tree.c
===================================================================
--- trunk/blender/source/blender/nodes/composite/node_composite_tree.c	2012-02-25 09:02:05 UTC (rev 44422)
+++ trunk/blender/source/blender/nodes/composite/node_composite_tree.c	2012-02-25 09:06:17 UTC (rev 44423)
@@ -566,10 +566,12 @@
 	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);
 	




More information about the Bf-blender-cvs mailing list