diff options
author | Nicholas Bishop <nicholasbishop@gmail.com> | 2012-07-16 20:55:58 +0400 |
---|---|---|
committer | Nicholas Bishop <nicholasbishop@gmail.com> | 2012-07-16 20:55:58 +0400 |
commit | 3a039d0e101b2379a64d584bf3f77f2380fd0120 (patch) | |
tree | de74e8fc3913a6274bc68acfb919d069ddb15d64 /source/blender/blenkernel/intern/multires.c | |
parent | 54bfdb9296fa1dd8612181d82f4f925111db782f (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.c | 9 |
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++) { |