[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [54315] trunk/blender/source/blender/ render/intern/source/bake.c: fix [#34105] bake artifacts

Campbell Barton ideasman42 at gmail.com
Tue Feb 5 09:16:04 CET 2013


Revision: 54315
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=54315
Author:   campbellbarton
Date:     2013-02-05 08:16:04 +0000 (Tue, 05 Feb 2013)
Log Message:
-----------
fix [#34105] bake artifacts
different threads could allocate the mask buffer and overwrite the same pointer, regression since 2.65

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

Modified: trunk/blender/source/blender/render/intern/source/bake.c
===================================================================
--- trunk/blender/source/blender/render/intern/source/bake.c	2013-02-05 05:39:18 UTC (rev 54314)
+++ trunk/blender/source/blender/render/intern/source/bake.c	2013-02-05 08:16:04 UTC (rev 54315)
@@ -818,10 +818,13 @@
 			BLI_lock_thread(LOCK_CUSTOM1);
 			userdata = bs->ibuf->userdata;
 			if (userdata == NULL) /* since the thread was locked, its possible another thread alloced the value */
-				userdata = MEM_callocN(sizeof(BakeImBufuserData), "BakeMask");
+				userdata = MEM_callocN(sizeof(BakeImBufuserData), STRINGIFY(BakeImBufuserData));
 
-			if (bs->use_mask)
-				userdata->mask_buffer = MEM_callocN(sizeof(char) * bs->rectx * bs->recty, "BakeMask");
+			if (bs->use_mask) {
+				if (userdata->mask_buffer == NULL) {
+					userdata->mask_buffer = MEM_callocN(sizeof(char) * bs->rectx * bs->recty, "BakeMask");
+				}
+			}
 
 			if (bs->use_displacement_buffer)
 				userdata->displacement_buffer = MEM_callocN(sizeof(float) * bs->rectx * bs->recty, "BakeDisp");




More information about the Bf-blender-cvs mailing list