[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [14050] trunk/blender/source/blender/ render/intern/source/rendercore.c: stupid mistake for setting the bake mask (only masked half the faces), also exposed a possible bug since the malloc and null checks were done without mutex locking .

Campbell Barton ideasman42 at gmail.com
Mon Mar 10 21:58:54 CET 2008


Revision: 14050
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=14050
Author:   campbellbarton
Date:     2008-03-10 21:58:53 +0100 (Mon, 10 Mar 2008)

Log Message:
-----------
stupid mistake for setting the bake mask (only masked half the faces), also exposed a possible bug since the malloc and null checks were done without mutex locking.

Modified Paths:
--------------
    trunk/blender/source/blender/render/intern/source/rendercore.c

Modified: trunk/blender/source/blender/render/intern/source/rendercore.c
===================================================================
--- trunk/blender/source/blender/render/intern/source/rendercore.c	2008-03-10 20:12:45 UTC (rev 14049)
+++ trunk/blender/source/blender/render/intern/source/rendercore.c	2008-03-10 20:58:53 UTC (rev 14050)
@@ -2282,7 +2282,13 @@
 	
 	if (bs->usemask) {
 		if (bs->ibuf->userdata==NULL) {
-			bs->ibuf->userdata = (void *)MEM_callocN(sizeof(char)*bs->rectx*bs->recty, "BakeMask");
+			BLI_lock_thread(LOCK_CUSTOM1);
+			if (bs->ibuf->userdata==NULL) { /* since the thread was locked, its possible another thread alloced the value */
+				bs->ibuf->userdata = (void *)MEM_callocN(sizeof(char)*bs->rectx*bs->recty, "BakeMask");
+				bs->rect_mask= (char *)bs->ibuf->userdata;
+			}
+			BLI_unlock_thread(LOCK_CUSTOM1);
+		} else {
 			bs->rect_mask= (char *)bs->ibuf->userdata;
 		}
 	}





More information about the Bf-blender-cvs mailing list