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:
authorNicholas Bishop <nicholasbishop@gmail.com>2012-07-16 20:55:58 +0400
committerNicholas Bishop <nicholasbishop@gmail.com>2012-07-16 20:55:58 +0400
commit3a039d0e101b2379a64d584bf3f77f2380fd0120 (patch)
treede74e8fc3913a6274bc68acfb919d069ddb15d64 /source/blender/blenkernel/intern/multires.c
parent54bfdb9296fa1dd8612181d82f4f925111db782f (diff)
Put paint mask grid allocation in a critical section
When OpenMP is enabled, memory allocation needs to be protected. Fixes bug [#32111] Memory management regression from svn_46520 projects.blender.org/tracker/index.php?func=detail&aid=32111&group_id=9&atid=498
Diffstat (limited to 'source/blender/blenkernel/intern/multires.c')
-rw-r--r--source/blender/blenkernel/intern/multires.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/source/blender/blenkernel/intern/multires.c b/source/blender/blenkernel/intern/multires.c
index db39bf74e48..a75d890dcb4 100644
--- a/source/blender/blenkernel/intern/multires.c
+++ b/source/blender/blenkernel/intern/multires.c
@@ -1067,9 +1067,12 @@ static void multiresModifier_disp_run(DerivedMesh *dm, Mesh *me, DerivedMesh *dm
/* if needed, reallocate multires paint mask */
if (gpm && gpm->level < key.level) {
gpm->level = key.level;
- if (gpm->data)
- MEM_freeN(gpm->data);
- gpm->data = MEM_callocN(sizeof(float) * key.grid_area, "gpm.data");
+ #pragma omp critical
+ {
+ if (gpm->data)
+ MEM_freeN(gpm->data);
+ gpm->data = MEM_callocN(sizeof(float) * key.grid_area, "gpm.data");
+ }
}
for (y = 0; y < gridSize; y++) {