[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [42367] branches/bmesh/blender/source/ blender/blenkernel/intern/DerivedMesh.c: fix for derived mesh buffer overrun caused by using an incorrect loop length .

Campbell Barton ideasman42 at gmail.com
Sat Dec 3 03:11:48 CET 2011


Revision: 42367
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=42367
Author:   campbellbarton
Date:     2011-12-03 02:11:38 +0000 (Sat, 03 Dec 2011)
Log Message:
-----------
fix for derived mesh buffer overrun caused by using an incorrect loop length.

editmode extruding would crash instantly when dupli-faces were enabled.

Modified Paths:
--------------
    branches/bmesh/blender/source/blender/blenkernel/intern/DerivedMesh.c

Modified: branches/bmesh/blender/source/blender/blenkernel/intern/DerivedMesh.c
===================================================================
--- branches/bmesh/blender/source/blender/blenkernel/intern/DerivedMesh.c	2011-12-03 01:12:57 UTC (rev 42366)
+++ branches/bmesh/blender/source/blender/blenkernel/intern/DerivedMesh.c	2011-12-03 02:11:38 UTC (rev 42367)
@@ -135,7 +135,7 @@
 
 	if (!mloop) {
 		mloop = CustomData_add_layer(&dm->loopData, CD_MLOOP, CD_CALLOC, NULL,
-			dm->numLoopData);
+			dm->getNumLoops(dm));
 		CustomData_set_layer_flag(&dm->loopData, CD_MLOOP, CD_FLAG_TEMPORARY);
 		dm->copyLoopArray(dm, mloop);
 	}
@@ -365,8 +365,8 @@
 
 	totvert = tmp.totvert = dm->getNumVerts(dm);
 	totedge = tmp.totedge = dm->getNumEdges(dm);
+	totloop = tmp.totloop = dm->getNumLoops(dm);
 	totpoly = tmp.totpoly = dm->getNumPolys(dm);
-	totloop = tmp.totloop = dm->numLoopData;
 
 	CustomData_copy(&dm->vertData, &tmp.vdata, CD_MASK_MESH, CD_DUPLICATE, totvert);
 	CustomData_copy(&dm->edgeData, &tmp.edata, CD_MASK_MESH, CD_DUPLICATE, totedge);




More information about the Bf-blender-cvs mailing list