[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [45834] trunk/blender/source/blender: - fix memory leak in mesh_strip_loose_polysloops(), occurred during 3ds import.

Campbell Barton ideasman42 at gmail.com
Sun Apr 22 02:27:38 CEST 2012


Revision: 45834
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=45834
Author:   campbellbarton
Date:     2012-04-22 00:27:38 +0000 (Sun, 22 Apr 2012)
Log Message:
-----------
- fix memory leak in mesh_strip_loose_polysloops(), occurred during 3ds import.
- updating normals in py/api's mesh.transform() wasn't working and gave annoying print, disable this, script authors can call calc_normals explicitly if they need.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/mesh.c
    trunk/blender/source/blender/editors/mesh/mesh_data.c

Modified: trunk/blender/source/blender/blenkernel/intern/mesh.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/mesh.c	2012-04-22 00:20:58 UTC (rev 45833)
+++ trunk/blender/source/blender/blenkernel/intern/mesh.c	2012-04-22 00:27:38 UTC (rev 45834)
@@ -1058,7 +1058,7 @@
 	MLoop *l;
 	int a, b;
 	/* New loops idx! */
-	int *new_idx = MEM_mallocN(sizeof(int) * me->totloop, "strip_loose_polysloops old2new idx mapping for polys.");
+	int *new_idx = MEM_mallocN(sizeof(int) * me->totloop, __func__);
 
 	for (a = b = 0, p = me->mpoly; a < me->totpoly; a++, p++) {
 		int invalid = FALSE;
@@ -1119,6 +1119,8 @@
 	for (a = 0, p = me->mpoly; a < me->totpoly; a++, p++) {
 		p->loopstart = new_idx[p->loopstart];
 	}
+
+	MEM_freeN(new_idx);
 }
 
 void mesh_strip_loose_edges(Mesh *me)

Modified: trunk/blender/source/blender/editors/mesh/mesh_data.c
===================================================================
--- trunk/blender/source/blender/editors/mesh/mesh_data.c	2012-04-22 00:20:58 UTC (rev 45833)
+++ trunk/blender/source/blender/editors/mesh/mesh_data.c	2012-04-22 00:27:38 UTC (rev 45834)
@@ -896,7 +896,7 @@
 	for (i = 0; i < me->totvert; i++, mvert++)
 		mul_m4_v3((float (*)[4])mat, mvert->co);
 
-	mesh_calc_normals_mapping(me->mvert, me->totvert, me->mloop, me->mpoly, me->totloop, me->totpoly, NULL, NULL, 0, NULL, NULL);
+	/* don't update normals, caller can do this explicitly */
 }
 
 static void mesh_add_edges(Mesh *mesh, int len)




More information about the Bf-blender-cvs mailing list