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
path: root/source
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2011-06-02 08:58:27 +0400
committerSergey Sharybin <sergey.vfx@gmail.com>2011-06-02 08:58:27 +0400
commit211cd99cbc0d894c2e586bd08ae723bf18b3cdd3 (patch)
tree5a86b680ee1739ee410c559e88a3e2e389392c4e /source
parent97d7496c96e93d443c90264c877d33b2a091ec7f (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.c2
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");