From 2563733a5dddf68f7bbb1e6929dc24bf2a5fbc9a Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 10 Mar 2008 20:58:53 +0000 Subject: [PATCH] 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. --- source/blender/render/intern/source/rendercore.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/source/blender/render/intern/source/rendercore.c b/source/blender/render/intern/source/rendercore.c index e8466d603a2..cab825888a1 100644 --- a/source/blender/render/intern/source/rendercore.c +++ b/source/blender/render/intern/source/rendercore.c @@ -2282,7 +2282,13 @@ static void shade_tface(BakeShade *bs) 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; } }