[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [49019] trunk/blender/source/blender/ blenkernel/intern/mask.c: Fixed crash of self-intersection loop in special cases

Sergey Sharybin sergey.vfx at gmail.com
Wed Jul 18 12:22:56 CEST 2012


Revision: 49019
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=49019
Author:   nazgul
Date:     2012-07-18 10:22:56 +0000 (Wed, 18 Jul 2012)
Log Message:
-----------
Fixed crash of self-intersection loop in special cases

It was wrongly calculated bucket number per side in cases when some
of segments is filling the whole bounding box across some of dimension.

Solved by limiting buckets at least to 1 in such cases.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/mask.c

Modified: trunk/blender/source/blender/blenkernel/intern/mask.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/mask.c	2012-07-18 09:56:10 UTC (rev 49018)
+++ trunk/blender/source/blender/blenkernel/intern/mask.c	2012-07-18 10:22:56 UTC (rev 49019)
@@ -564,6 +564,13 @@
 	max_delta = MAX2(max_delta_x, max_delta_y);
 
 	buckets_per_side = MIN2(512, 0.9f / max_delta);
+
+	if (buckets_per_side == 0) {
+		/* happens when some segment fills the whole bounding box across some of dimension */
+
+		buckets_per_side = 1;
+	}
+
 	tot_bucket = buckets_per_side * buckets_per_side;
 	bucket_size = 1.0f / buckets_per_side;
 




More information about the Bf-blender-cvs mailing list