[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [36649] branches/bmesh/blender/source/ blender: =bmesh=fixed shapekey mem leak
Joseph Eagar
joeedh at gmail.com
Thu May 12 20:33:11 CEST 2011
Revision: 36649
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=36649
Author: joeedh
Date: 2011-05-12 18:33:10 +0000 (Thu, 12 May 2011)
Log Message:
-----------
=bmesh=fixed shapekey mem leak
Modified Paths:
--------------
branches/bmesh/blender/source/blender/blenlib/intern/scanfill.c
branches/bmesh/blender/source/blender/bmesh/operators/mesh_conv.c
branches/bmesh/blender/source/blender/editors/mesh/bmeshutils.c
Modified: branches/bmesh/blender/source/blender/blenlib/intern/scanfill.c
===================================================================
--- branches/bmesh/blender/source/blender/blenlib/intern/scanfill.c 2011-05-12 18:17:23 UTC (rev 36648)
+++ branches/bmesh/blender/source/blender/blenlib/intern/scanfill.c 2011-05-12 18:33:10 UTC (rev 36649)
@@ -172,8 +172,8 @@
/*reset the block we're keeping*/
BLI_addtail(&lb, first);
memset(first->data, 0, blocksize);
- cur = first;
- offs = 0;
+ cur= first;
+ offs= 0;
return NULL;
}
Modified: branches/bmesh/blender/source/blender/bmesh/operators/mesh_conv.c
===================================================================
--- branches/bmesh/blender/source/blender/bmesh/operators/mesh_conv.c 2011-05-12 18:17:23 UTC (rev 36648)
+++ branches/bmesh/blender/source/blender/bmesh/operators/mesh_conv.c 2011-05-12 18:33:10 UTC (rev 36649)
@@ -78,8 +78,6 @@
CustomData_set_layer_name(&bm->ldata, CD_MLOOPUV, i, bm->pdata.layers[li].name);
}
- CustomData_add_layer(&bm->vdata, CD_SHAPE_KEYINDEX, CD_ASSIGN, NULL, 0);
-
if (!CustomData_has_layer(&bm->edata, CD_CREASE))
CustomData_add_layer(&bm->edata, CD_CREASE, CD_ASSIGN, NULL, 0);
@@ -96,6 +94,8 @@
actkey = ob_get_keyblock(ob);
if(actkey && actkey->totelem == me->totvert) {
+ CustomData_add_layer(&bm->vdata, CD_SHAPE_KEYINDEX, CD_ASSIGN, NULL, 0);
+
/*check if we need to generate unique ids for the shapekeys.
this also exists in the file reading code, but is here for
a sanity check*/
@@ -142,12 +142,12 @@
/*Copy Custom Data*/
CustomData_to_bmesh_block(&me->vdata, &bm->vdata, i, &v->head.data);
- /*set shape key original index*/
- keyi = CustomData_bmesh_get(&bm->vdata, v->head.data, CD_SHAPE_KEYINDEX);
- *keyi = i;
-
/*set shapekey data*/
if (me->key) {
+ /*set shape key original index*/
+ keyi = CustomData_bmesh_get(&bm->vdata, v->head.data, CD_SHAPE_KEYINDEX);
+ *keyi = i;
+
for (block=me->key->block.first, j=0; block; block=block->next, j++) {
float *co = CustomData_bmesh_get_n(&bm->vdata, v->head.data,
CD_SHAPEKEY, j);
Modified: branches/bmesh/blender/source/blender/editors/mesh/bmeshutils.c
===================================================================
--- branches/bmesh/blender/source/blender/editors/mesh/bmeshutils.c 2011-05-12 18:17:23 UTC (rev 36648)
+++ branches/bmesh/blender/source/blender/editors/mesh/bmeshutils.c 2011-05-12 18:33:10 UTC (rev 36649)
@@ -613,6 +613,12 @@
static void free_undo(void *umv)
{
+ if (((Mesh*)umv)->key)
+ {
+ free_key(((Mesh*)umv)->key);
+ MEM_freeN(((Mesh*)umv)->key);
+ }
+
free_mesh(umv, 0);
MEM_freeN(umv);
}
More information about the Bf-blender-cvs
mailing list