[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