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 <bastien@blender.org>2020-09-24 21:52:04 +0300
committerBastien Montagne <bastien@blender.org>2020-09-24 22:08:27 +0300
commit771d041c4cb3922617484d69f3b3c83c635bcace (patch)
treec568905228292f6018267b0f91a91a644fde33c3 /source/blender/modifiers/intern/MOD_solidify_extrude.c
parent744f81c936cbd946d2eb8035b9714b5f6bfbdc8c (diff)
Fix (unreported) memory leak in Extrude mode of the Solidify modifier.
Diffstat (limited to 'source/blender/modifiers/intern/MOD_solidify_extrude.c')
-rw-r--r--source/blender/modifiers/intern/MOD_solidify_extrude.c30
1 files changed, 15 insertions, 15 deletions
diff --git a/source/blender/modifiers/intern/MOD_solidify_extrude.c b/source/blender/modifiers/intern/MOD_solidify_extrude.c
index 818327e120b..b97ee434597 100644
--- a/source/blender/modifiers/intern/MOD_solidify_extrude.c
+++ b/source/blender/modifiers/intern/MOD_solidify_extrude.c
@@ -1004,23 +1004,23 @@ Mesh *MOD_solidify_extrude_modifyMesh(ModifierData *md, const ModifierEvalContex
&result->vdata, CD_MDEFORMVERT, CD_CALLOC, NULL, result->totvert);
}
/* Ultimate security check. */
- if (!dvert) {
- return result;
- }
- result->dvert = dvert;
-
- if (rim_defgrp_index != -1) {
- for (uint i = 0; i < rimVerts; i++) {
- BKE_defvert_ensure_index(&result->dvert[new_vert_arr[i]], rim_defgrp_index)->weight = 1.0f;
- BKE_defvert_ensure_index(&result->dvert[(do_shell ? new_vert_arr[i] : i) + numVerts],
- rim_defgrp_index)
- ->weight = 1.0f;
+ if (dvert != NULL) {
+ result->dvert = dvert;
+
+ if (rim_defgrp_index != -1) {
+ for (uint i = 0; i < rimVerts; i++) {
+ BKE_defvert_ensure_index(&result->dvert[new_vert_arr[i]], rim_defgrp_index)->weight =
+ 1.0f;
+ BKE_defvert_ensure_index(&result->dvert[(do_shell ? new_vert_arr[i] : i) + numVerts],
+ rim_defgrp_index)
+ ->weight = 1.0f;
+ }
}
- }
- if (shell_defgrp_index != -1) {
- for (uint i = numVerts; i < result->totvert; i++) {
- BKE_defvert_ensure_index(&result->dvert[i], shell_defgrp_index)->weight = 1.0f;
+ if (shell_defgrp_index != -1) {
+ for (uint i = numVerts; i < result->totvert; i++) {
+ BKE_defvert_ensure_index(&result->dvert[i], shell_defgrp_index)->weight = 1.0f;
+ }
}
}
}