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:
authorHans Goudey <h.goudey@me.com>2022-01-27 20:02:10 +0300
committerHans Goudey <h.goudey@me.com>2022-01-27 20:02:10 +0300
commit834b966b419ca50f0675e49720dff36822838acb (patch)
treeefad35d666a2551c4f12fb4d04da0d033fbaf45c
parentd7ac659e02327ceb433bf69a624d76fa7c65b129 (diff)
Fix T95212: Mirror modifier normals crash
The vertex and face normals from the input mesh were used to calculate the normals on the result, which could cause a crash because the result should be about twice as large. Also remove an unnecessary dirty tag, since it is handled automatically when creating a new mesh or in the case of the mirror modifier, when calculating the new custom face corner normals.
-rw-r--r--source/blender/blenkernel/intern/mesh_mirror.c4
-rw-r--r--source/blender/modifiers/intern/MOD_mirror.c3
2 files changed, 2 insertions, 5 deletions
diff --git a/source/blender/blenkernel/intern/mesh_mirror.c b/source/blender/blenkernel/intern/mesh_mirror.c
index abc0b518d92..ec3655ac491 100644
--- a/source/blender/blenkernel/intern/mesh_mirror.c
+++ b/source/blender/blenkernel/intern/mesh_mirror.c
@@ -420,7 +420,7 @@ Mesh *BKE_mesh_mirror_apply_mirror_on_axis_for_modifier(MirrorModifierData *mmd,
/* calculate custom normals into loop_normals, then mirror first half into second half */
BKE_mesh_normals_loop_split(result->mvert,
- BKE_mesh_vertex_normals_ensure(mesh),
+ BKE_mesh_vertex_normals_ensure(result),
result->totvert,
result->medge,
result->totedge,
@@ -428,7 +428,7 @@ Mesh *BKE_mesh_mirror_apply_mirror_on_axis_for_modifier(MirrorModifierData *mmd,
loop_normals,
totloop,
result->mpoly,
- BKE_mesh_poly_normals_ensure(mesh),
+ BKE_mesh_poly_normals_ensure(result),
totpoly,
true,
mesh->smoothresh,
diff --git a/source/blender/modifiers/intern/MOD_mirror.c b/source/blender/modifiers/intern/MOD_mirror.c
index bbac6589577..1bdc97f0a8b 100644
--- a/source/blender/modifiers/intern/MOD_mirror.c
+++ b/source/blender/modifiers/intern/MOD_mirror.c
@@ -120,9 +120,6 @@ static Mesh *modifyMesh(ModifierData *md, const ModifierEvalContext *ctx, Mesh *
result = mirrorModifier__doMirror(mmd, ctx->object, mesh);
- if (result != mesh) {
- BKE_mesh_normals_tag_dirty(result);
- }
return result;
}