Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBastien Montagne <montagne29@wanadoo.fr>2011-11-23 18:40:15 +0400
committerBastien Montagne <montagne29@wanadoo.fr>2011-11-23 18:40:15 +0400
commit8d5d87c447d5e589d8e3228924bb5d81662310c7 (patch)
tree5cadb2d6220504c8388d65b61d44aec384809826 /source/blender/modifiers
parent4c43a14b9f61e9e8a049299278773699fc6d7b1d (diff)
Fixed some glitches with WeightVG modifiers:
* Added some RNA tooltips, now that they are supported by dropdown lists. * Fixed some RNA num properties UI steps. * Fixed a memory leak in Proximity modifier (when dm of "target" object had to be created, it wasn’t freed...).
Diffstat (limited to 'source/blender/modifiers')
-rw-r--r--source/blender/modifiers/intern/MOD_weightvgproximity.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/source/blender/modifiers/intern/MOD_weightvgproximity.c b/source/blender/modifiers/intern/MOD_weightvgproximity.c
index 8effe4d7c1b..a30c5da07c8 100644
--- a/source/blender/modifiers/intern/MOD_weightvgproximity.c
+++ b/source/blender/modifiers/intern/MOD_weightvgproximity.c
@@ -466,6 +466,7 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob, DerivedMesh *der
if (use_trgt_verts || use_trgt_edges || use_trgt_faces) {
DerivedMesh *target_dm = obr->derivedFinal;
+ short free_target_dm = FALSE;
if (!target_dm) {
if (ELEM3(obr->type, OB_CURVE, OB_SURF, OB_FONT))
target_dm = CDDM_from_curve(obr);
@@ -476,6 +477,7 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob, DerivedMesh *der
else
target_dm = CDDM_from_mesh(me, obr);
}
+ free_target_dm = TRUE;
}
/* We must check that we do have a valid target_dm! */
@@ -495,6 +497,7 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob, DerivedMesh *der
if(dists_f)
new_w[i] = minf(dists_f[i], new_w[i]);
}
+ if(free_target_dm) target_dm->release(target_dm);
if(dists_v) MEM_freeN(dists_v);
if(dists_e) MEM_freeN(dists_e);
if(dists_f) MEM_freeN(dists_f);