[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [40883] branches/bmesh/blender/source/ blender/blenkernel/intern/mesh.c: Fix for 28859 ( found and reported with fix by nico_ga from #blendercoders)
Andrew Wiggin
ender79bl at gmail.com
Sun Oct 9 23:59:29 CEST 2011
Revision: 40883
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=40883
Author: ender79
Date: 2011-10-09 21:59:29 +0000 (Sun, 09 Oct 2011)
Log Message:
-----------
Fix for 28859 (found and reported with fix by nico_ga from #blendercoders)
Modified Paths:
--------------
branches/bmesh/blender/source/blender/blenkernel/intern/mesh.c
Modified: branches/bmesh/blender/source/blender/blenkernel/intern/mesh.c
===================================================================
--- branches/bmesh/blender/source/blender/blenkernel/intern/mesh.c 2011-10-09 21:43:13 UTC (rev 40882)
+++ branches/bmesh/blender/source/blender/blenkernel/intern/mesh.c 2011-10-09 21:59:29 UTC (rev 40883)
@@ -1892,17 +1892,26 @@
int side, corners;
corners = multires_mdisp_corners(fd);
- side = sqrt(fd->totdisp / corners);
- for (i=0; i<tot; i++, disps += side*side, ld++) {
- ld->totdisp = side*side;
+ if (corners == 0) {
+ /* Empty MDisp layers appear in at least one of the sintel.blend files.
+ Not sure why this happens, but it seems fine to just ignore them here.
+ If corners==0 for a non-empty layer though, something went wrong. */
+ BLI_assert(fd->totdisp == 0);
+ }
+ else {
+ side = sqrt(fd->totdisp / corners);
+
+ for (i=0; i<tot; i++, disps += side*side, ld++) {
+ ld->totdisp = side*side;
- if (ld->disps)
- BLI_cellalloc_free(ld->disps);
+ if (ld->disps)
+ BLI_cellalloc_free(ld->disps);
- ld->disps = BLI_cellalloc_calloc(sizeof(float)*3*side*side, "converted loop mdisps");
- if (fd->disps) {
- memcpy(ld->disps, disps, sizeof(float)*3*side*side);
+ ld->disps = BLI_cellalloc_calloc(sizeof(float)*3*side*side, "converted loop mdisps");
+ if (fd->disps) {
+ memcpy(ld->disps, disps, sizeof(float)*3*side*side);
+ }
}
}
}
More information about the Bf-blender-cvs
mailing list