[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [28578] trunk/blender/source/blender: billboards were using un-initialized memory and avoid divide by zero in some cases .

Campbell Barton ideasman42 at gmail.com
Tue May 4 23:10:26 CEST 2010


Revision: 28578
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=28578
Author:   campbellbarton
Date:     2010-05-04 23:10:26 +0200 (Tue, 04 May 2010)

Log Message:
-----------
billboards were using un-initialized memory and avoid divide by zero in some cases.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/particle.c
    trunk/blender/source/blender/editors/interface/view2d.c

Modified: trunk/blender/source/blender/blenkernel/intern/particle.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/particle.c	2010-05-04 16:54:00 UTC (rev 28577)
+++ trunk/blender/source/blender/blenkernel/intern/particle.c	2010-05-04 21:10:26 UTC (rev 28578)
@@ -1137,6 +1137,9 @@
 	int point_vel = (point && point->keys->vel);
 	float real_t, dfra, keytime;
 
+	/* billboards wont fill in all of these, so start cleared */
+	memset(keys, 0, sizeof(keys));
+
 	/* interpret timing and find keys */
 	if(point) {
 		if(result->time < 0.0f)

Modified: trunk/blender/source/blender/editors/interface/view2d.c
===================================================================
--- trunk/blender/source/blender/editors/interface/view2d.c	2010-05-04 16:54:00 UTC (rev 28577)
+++ trunk/blender/source/blender/editors/interface/view2d.c	2010-05-04 21:10:26 UTC (rev 28578)
@@ -1389,6 +1389,7 @@
 		/* scroller 'button' extents */
 		totsize= v2d->tot.xmax - v2d->tot.xmin;
 		scrollsize= (float)(hor.xmax - hor.xmin);
+		if(totsize==0.0f) totsize = 1.0f; /* avoid divide by zero */
 		
 		fac1= (v2d->cur.xmin - v2d->tot.xmin) / totsize;
 		if(fac1<=0.0f)
@@ -1429,6 +1430,7 @@
 		/* scroller 'button' extents */
 		totsize= v2d->tot.ymax - v2d->tot.ymin;
 		scrollsize= (float)(vert.ymax - vert.ymin);
+		if(totsize==0.0f) totsize = 1.0f; /* avoid divide by zero */
 		
 		fac1= (v2d->cur.ymin- v2d->tot.ymin) / totsize;
 		if(fac1<=0.0f)





More information about the Bf-blender-cvs mailing list