[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [54449] trunk/blender/source/blender: fix for own bug - memory leak when cancelling weight gradient tool
Campbell Barton
ideasman42 at gmail.com
Mon Feb 11 05:43:49 CET 2013
Revision: 54449
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=54449
Author: campbellbarton
Date: 2013-02-11 04:43:49 +0000 (Mon, 11 Feb 2013)
Log Message:
-----------
fix for own bug - memory leak when cancelling weight gradient tool
Modified Paths:
--------------
trunk/blender/source/blender/blenkernel/BKE_deform.h
trunk/blender/source/blender/blenkernel/intern/deform.c
trunk/blender/source/blender/editors/sculpt_paint/paint_vertex.c
Modified: trunk/blender/source/blender/blenkernel/BKE_deform.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_deform.h 2013-02-11 03:01:50 UTC (rev 54448)
+++ trunk/blender/source/blender/blenkernel/BKE_deform.h 2013-02-11 04:43:49 UTC (rev 54449)
@@ -56,6 +56,7 @@
void defvert_clear(struct MDeformVert *dvert);
int defvert_find_shared(const struct MDeformVert *dvert_a, const struct MDeformVert *dvert_b);
+void BKE_defvert_array_free_elems(struct MDeformVert *dvert, int totvert);
void BKE_defvert_array_free(struct MDeformVert *dvert, int totvert);
void BKE_defvert_array_copy(struct MDeformVert *dst, const struct MDeformVert *src, int totvert);
Modified: trunk/blender/source/blender/blenkernel/intern/deform.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/deform.c 2013-02-11 03:01:50 UTC (rev 54448)
+++ trunk/blender/source/blender/blenkernel/intern/deform.c 2013-02-11 04:43:49 UTC (rev 54449)
@@ -809,7 +809,7 @@
}
-void BKE_defvert_array_free(MDeformVert *dvert, int totvert)
+void BKE_defvert_array_free_elems(MDeformVert *dvert, int totvert)
{
/* Instead of freeing the verts directly,
* call this function to delete any special
@@ -823,6 +823,18 @@
for (i = 0; i < totvert; i++) {
if (dvert[i].dw) MEM_freeN(dvert[i].dw);
}
+}
+
+void BKE_defvert_array_free(MDeformVert *dvert, int totvert)
+{
+ /* Instead of freeing the verts directly,
+ * call this function to delete any special
+ * vert data */
+ if (!dvert)
+ return;
+
+ /* Free any special data from the verts */
+ BKE_defvert_array_free_elems(dvert, totvert);
+
MEM_freeN(dvert);
}
-
Modified: trunk/blender/source/blender/editors/sculpt_paint/paint_vertex.c
===================================================================
--- trunk/blender/source/blender/editors/sculpt_paint/paint_vertex.c 2013-02-11 03:01:50 UTC (rev 54448)
+++ trunk/blender/source/blender/editors/sculpt_paint/paint_vertex.c 2013-02-11 04:43:49 UTC (rev 54449)
@@ -3182,6 +3182,7 @@
VPaint *wp = ts->wpaint;
Object *ob = CTX_data_active_object(C);
Mesh *me = ob->data;
+ BKE_defvert_array_free_elems(me->dvert, me->totvert);
BKE_defvert_array_copy(me->dvert, wp->wpaint_prev, me->totvert);
free_wpaint_prev(wp);
More information about the Bf-blender-cvs
mailing list