Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2008-03-10 23:58:53 +0300
committerCampbell Barton <ideasman42@gmail.com>2008-03-10 23:58:53 +0300
commit2563733a5dddf68f7bbb1e6929dc24bf2a5fbc9a (patch)
treed6e29e4e53a546098c3c07f62b4c21dfdbe8186e
parent4ecf0fffafaf11ffe188d1938e837a4a477a4d2d (diff)
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.
-rw-r--r--source/blender/render/intern/source/rendercore.c8
1 files changed, 7 insertions, 1 deletions
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;
}
}