diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2011-06-02 08:58:27 +0400 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2011-06-02 08:58:27 +0400 |
commit | 211cd99cbc0d894c2e586bd08ae723bf18b3cdd3 (patch) | |
tree | 5a86b680ee1739ee410c559e88a3e2e389392c4e /source | |
parent | 97d7496c96e93d443c90264c877d33b2a091ec7f (diff) |
Fix #27539: Sculpt data is lost after editing base mesh
Face's totdisp was set to correct value, but memory hasn't been
allocated for disps. Handle this in multires_topology_changed(),
so the whole MDISPS layer wouldn't be totally re-allocated when
applying displacement.
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/blenkernel/intern/multires.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/source/blender/blenkernel/intern/multires.c b/source/blender/blenkernel/intern/multires.c index 637f5da45af..13ab89200db 100644 --- a/source/blender/blenkernel/intern/multires.c +++ b/source/blender/blenkernel/intern/multires.c @@ -1756,7 +1756,7 @@ void multires_topology_changed(Scene *scene, Object *ob) int nvert= me->mface[i].v4 ? 4 : 3; /* allocate memory for mdisp, the whole disp layer would be erased otherwise */ - if(!mdisp->totdisp) { + if(!mdisp->totdisp || !mdisp->disps) { if(grid) { mdisp->totdisp= nvert*grid; mdisp->disps= MEM_callocN(mdisp->totdisp*sizeof(float)*3, "mdisp topology"); |