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-03-21 22:44:39 +0300
committerHans Goudey <h.goudey@me.com>2022-03-21 22:44:39 +0300
commit923b28aab85768e2b4aff89494c321028252cf1e (patch)
tree916edf104ff24426b2d4e38037716b0878ab94dd /source/blender/modifiers/intern/MOD_array.c
parenteb1755be355a7dc71e1274da53e2ba1405c08a9b (diff)
Fix T96494: Array modifier with caps crash on curve objects
Since 3b6ee8cee7080af20, a list of vertex groups cannot be retrieved from curve objects for merging because curve objects do not support vertex groups. Previously the empty list on the object was returned. Only mesh objects are supported for the caps.
Diffstat (limited to 'source/blender/modifiers/intern/MOD_array.c')
-rw-r--r--source/blender/modifiers/intern/MOD_array.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/source/blender/modifiers/intern/MOD_array.c b/source/blender/modifiers/intern/MOD_array.c
index 8298f7c92b2..4b2dfd7d493 100644
--- a/source/blender/modifiers/intern/MOD_array.c
+++ b/source/blender/modifiers/intern/MOD_array.c
@@ -397,8 +397,10 @@ static Mesh *arrayModifier_doArray(ArrayModifierData *amd,
Object *start_cap_ob = amd->start_cap;
if (start_cap_ob && start_cap_ob != ctx->object) {
- vgroup_start_cap_remap = BKE_object_defgroup_index_map_create(
- start_cap_ob, ctx->object, &vgroup_start_cap_remap_len);
+ if (start_cap_ob->type == OB_MESH && ctx->object->type == OB_MESH) {
+ vgroup_start_cap_remap = BKE_object_defgroup_index_map_create(
+ start_cap_ob, ctx->object, &vgroup_start_cap_remap_len);
+ }
start_cap_mesh = BKE_modifier_get_evaluated_mesh_from_evaluated_object(start_cap_ob, false);
if (start_cap_mesh) {
@@ -410,8 +412,10 @@ static Mesh *arrayModifier_doArray(ArrayModifierData *amd,
}
Object *end_cap_ob = amd->end_cap;
if (end_cap_ob && end_cap_ob != ctx->object) {
- vgroup_end_cap_remap = BKE_object_defgroup_index_map_create(
- end_cap_ob, ctx->object, &vgroup_end_cap_remap_len);
+ if (start_cap_ob->type == OB_MESH && ctx->object->type == OB_MESH) {
+ vgroup_end_cap_remap = BKE_object_defgroup_index_map_create(
+ end_cap_ob, ctx->object, &vgroup_end_cap_remap_len);
+ }
end_cap_mesh = BKE_modifier_get_evaluated_mesh_from_evaluated_object(end_cap_ob, false);
if (end_cap_mesh) {