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:
authorCampbell Barton <campbell@blender.org>2022-08-12 14:51:18 +0300
committerCampbell Barton <campbell@blender.org>2022-08-12 14:51:18 +0300
commitafc71a0512d0d8d4c51521745a54775ebdca3ab9 (patch)
tree8b0fc0ec41261a7e75b953455d32cd928a9545a4 /source/blender/modifiers
parentf4aec3719f763d128d2c570cc4751ac7b5cb86f7 (diff)
parent4dc9a8a21e82d1c56419713c517b38728993ed8a (diff)
Merge branch 'blender-v3.3-release'
Diffstat (limited to 'source/blender/modifiers')
-rw-r--r--source/blender/modifiers/intern/MOD_wave.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/source/blender/modifiers/intern/MOD_wave.c b/source/blender/modifiers/intern/MOD_wave.c
index 60fa14ce4f3..af26a37035b 100644
--- a/source/blender/modifiers/intern/MOD_wave.c
+++ b/source/blender/modifiers/intern/MOD_wave.c
@@ -327,8 +327,12 @@ static void deformVertsEM(ModifierData *md,
Mesh *mesh_src = NULL;
if (wmd->flag & MOD_WAVE_NORM) {
+ /* NOTE(@campbellbarton): don't request normals here because `use_normals == false`
+ * because #BKE_mesh_wrapper_ensure_mdata has not run yet.
+ * While this could be supported the argument is documented to be removed,
+ * so pass false here and let the normals be created when requested. */
mesh_src = MOD_deform_mesh_eval_get(
- ctx->object, editData, mesh, vertexCos, verts_num, true, false);
+ ctx->object, editData, mesh, vertexCos, verts_num, false, false);
}
else if (wmd->texture != NULL || wmd->defgrp_name[0] != '\0') {
mesh_src = MOD_deform_mesh_eval_get(
@@ -343,6 +347,12 @@ static void deformVertsEM(ModifierData *md,
waveModifier_do(wmd, ctx, ctx->object, mesh_src, vertexCos, verts_num);
if (!ELEM(mesh_src, NULL, mesh)) {
+ /* Important not to free `vertexCos` owned by the caller. */
+ EditMeshData *edit_data = mesh_src->runtime.edit_data;
+ if (edit_data->vertexCos == vertexCos) {
+ edit_data->vertexCos = NULL;
+ }
+
BKE_id_free(NULL, mesh_src);
}
}