diff options
author | Bastien Montagne <montagne29@wanadoo.fr> | 2018-08-06 12:48:05 +0300 |
---|---|---|
committer | Bastien Montagne <montagne29@wanadoo.fr> | 2018-08-06 12:49:42 +0300 |
commit | d890ad37a8268d31f3f79443b6c3b4a3c6a8b10e (patch) | |
tree | d8995fe1e66012695b6198a2ab1baacf58a64bc6 | |
parent | e680a9d80d46a7d76552664a0210ac2750d9ab49 (diff) |
Fix horrible invalid mesh freeing in weightvg modifiers.
Comes from rB7661f8a65b. Found while checking on T55818, but not solving
that issue of course.
-rw-r--r-- | source/blender/modifiers/intern/MOD_weightvgedit.c | 4 | ||||
-rw-r--r-- | source/blender/modifiers/intern/MOD_weightvgmix.c | 4 | ||||
-rw-r--r-- | source/blender/modifiers/intern/MOD_weightvgproximity.c | 4 |
3 files changed, 9 insertions, 3 deletions
diff --git a/source/blender/modifiers/intern/MOD_weightvgedit.c b/source/blender/modifiers/intern/MOD_weightvgedit.c index a34ed1baaff..356edcd7bec 100644 --- a/source/blender/modifiers/intern/MOD_weightvgedit.c +++ b/source/blender/modifiers/intern/MOD_weightvgedit.c @@ -214,7 +214,9 @@ static Mesh *applyModifier( } /* Ultimate security check. */ if (!dvert) { - BKE_id_free(NULL, result); + if (result != mesh) { + BKE_id_free(NULL, result); + } return mesh; } diff --git a/source/blender/modifiers/intern/MOD_weightvgmix.c b/source/blender/modifiers/intern/MOD_weightvgmix.c index b6a7228b171..3c740530258 100644 --- a/source/blender/modifiers/intern/MOD_weightvgmix.c +++ b/source/blender/modifiers/intern/MOD_weightvgmix.c @@ -254,7 +254,9 @@ static Mesh *applyModifier(ModifierData *md, const ModifierEvalContext *ctx, Mes } /* Ultimate security check. */ if (!dvert) { - BKE_id_free(NULL, result); + if (result != mesh) { + BKE_id_free(NULL, result); + } return mesh; } diff --git a/source/blender/modifiers/intern/MOD_weightvgproximity.c b/source/blender/modifiers/intern/MOD_weightvgproximity.c index 05b1ec19253..c485aa132d7 100644 --- a/source/blender/modifiers/intern/MOD_weightvgproximity.c +++ b/source/blender/modifiers/intern/MOD_weightvgproximity.c @@ -433,7 +433,9 @@ static Mesh *applyModifier(ModifierData *md, const ModifierEvalContext *ctx, Mes } /* Ultimate security check. */ if (!dvert) { - BKE_id_free(NULL, result); + if (result != mesh) { + BKE_id_free(NULL, result); + } return mesh; } |