[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [53353] trunk/blender/source/blender/ editors/sculpt_paint/paint_vertex.c: fix for memory leak with weight painting and ensure vertex group is created before use .
Campbell Barton
ideasman42 at gmail.com
Fri Dec 28 10:00:10 CET 2012
Revision: 53353
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=53353
Author: campbellbarton
Date: 2012-12-28 09:00:05 +0000 (Fri, 28 Dec 2012)
Log Message:
-----------
fix for memory leak with weight painting and ensure vertex group is created before use.
Modified Paths:
--------------
trunk/blender/source/blender/editors/sculpt_paint/paint_vertex.c
Modified: trunk/blender/source/blender/editors/sculpt_paint/paint_vertex.c
===================================================================
--- trunk/blender/source/blender/editors/sculpt_paint/paint_vertex.c 2012-12-28 02:45:10 UTC (rev 53352)
+++ trunk/blender/source/blender/editors/sculpt_paint/paint_vertex.c 2012-12-28 09:00:05 UTC (rev 53353)
@@ -405,7 +405,7 @@
static void free_wpaint_prev(VPaint *vp)
{
if (vp->wpaint_prev) {
- MEM_freeN(vp->wpaint_prev);
+ free_dverts(vp->wpaint_prev, vp->tot);
vp->wpaint_prev = NULL;
vp->tot = 0;
}
@@ -2498,7 +2498,7 @@
RNA_def_collection_runtime(ot->srna, "stroke", &RNA_OperatorStrokeElement, "Stroke", "");
}
-static int weight_paint_set_exec(bContext *C, wmOperator *UNUSED(op))
+static int weight_paint_set_exec(bContext *C, wmOperator *op)
{
struct Scene *scene = CTX_data_scene(C);
Object *obact = CTX_data_active_object(C);
@@ -2506,6 +2506,10 @@
Brush *brush = paint_brush(&ts->wpaint->paint);
float vgroup_weight = BKE_brush_weight_get(scene, brush);
+ if (wpaint_ensure_data(C, op) == FALSE) {
+ return OPERATOR_CANCELLED;
+ }
+
wpaint_fill(scene->toolsettings->wpaint, obact, vgroup_weight);
ED_region_tag_redraw(CTX_wm_region(C)); /* XXX - should redraw all 3D views */
return OPERATOR_FINISHED;
@@ -3217,6 +3221,10 @@
{
int ret;
+ if (wpaint_ensure_data(C, op) == FALSE) {
+ return OPERATOR_CANCELLED;
+ }
+
ret = WM_gesture_straightline_invoke(C, op, event);
if (ret & OPERATOR_RUNNING_MODAL) {
struct ARegion *ar = CTX_wm_region(C);
More information about the Bf-blender-cvs
mailing list