diff options
author | Bastien Montagne <montagne29@wanadoo.fr> | 2013-06-10 22:12:07 +0400 |
---|---|---|
committer | Bastien Montagne <montagne29@wanadoo.fr> | 2013-06-10 22:12:07 +0400 |
commit | 67a5d1b660a37a43f4d70fc7d588b67bef434574 (patch) | |
tree | 509b19645a58de73e8ee9ae6c16342dfaa6155ba /source/blender/modifiers/intern/MOD_weightvgproximity.c | |
parent | 5183ba74a84d1d41561f233bc1679d5a4fd422cb (diff) |
Follow up to r57354: WeightVG and Wave modifiers too need to handle tex id refcount ;)
Diffstat (limited to 'source/blender/modifiers/intern/MOD_weightvgproximity.c')
-rw-r--r-- | source/blender/modifiers/intern/MOD_weightvgproximity.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/source/blender/modifiers/intern/MOD_weightvgproximity.c b/source/blender/modifiers/intern/MOD_weightvgproximity.c index 7a9bb6b34d1..f0e9a26f10a 100644 --- a/source/blender/modifiers/intern/MOD_weightvgproximity.c +++ b/source/blender/modifiers/intern/MOD_weightvgproximity.c @@ -47,6 +47,7 @@ #include "BKE_cdderivedmesh.h" #include "BKE_deform.h" +#include "BKE_library.h" #include "BKE_mesh.h" #include "BKE_modifier.h" #include "BKE_shrinkwrap.h" /* For SpaceTransform stuff. */ @@ -242,6 +243,14 @@ static void initData(ModifierData *md) wmd->max_dist = 1.0f; /* vert arbitrary distance, but don't use 0 */ } +static void freeData(ModifierData *md) +{ + WeightVGProximityModifierData *wmd = (WeightVGProximityModifierData *) md; + if (wmd->mask_texture) { + id_us_min(&wmd->mask_texture->id); + } +} + static void copyData(ModifierData *md, ModifierData *target) { WeightVGProximityModifierData *wmd = (WeightVGProximityModifierData *) md; @@ -263,6 +272,10 @@ static void copyData(ModifierData *md, ModifierData *target) BLI_strncpy(twmd->mask_tex_uvlayer_name, wmd->mask_tex_uvlayer_name, sizeof(twmd->mask_tex_uvlayer_name)); twmd->min_dist = wmd->min_dist; twmd->max_dist = wmd->max_dist; + + if (twmd->mask_texture) { + id_us_plus(&twmd->mask_texture->id); + } } static CustomDataMask requiredDataMask(Object *UNUSED(ob), ModifierData *md) @@ -563,7 +576,7 @@ ModifierTypeInfo modifierType_WeightVGProximity = { /* applyModifierEM */ NULL, /* initData */ initData, /* requiredDataMask */ requiredDataMask, - /* freeData */ NULL, + /* freeData */ freeData, /* isDisabled */ isDisabled, /* updateDepgraph */ updateDepgraph, /* dependsOnTime */ dependsOnTime, |