From ace8ad861de78a19645cdf87e138eda6bc66ea3e Mon Sep 17 00:00:00 2001 From: Bastien Montagne Date: Sat, 16 Jun 2018 16:19:53 +0200 Subject: [PATCH] Fix T55427: Removing Vertex Group used by Data Transfer Modifier results in crash. Only fixing crash, proper handling (a.k.a remapping) of all possible cases here, for all possible data layers, is rather involved... --- source/blender/blenkernel/intern/deform.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/source/blender/blenkernel/intern/deform.c b/source/blender/blenkernel/intern/deform.c index 22ff8bf4bb7..f33f17019b3 100644 --- a/source/blender/blenkernel/intern/deform.c +++ b/source/blender/blenkernel/intern/deform.c @@ -1189,7 +1189,12 @@ bool data_transfer_layersmapping_vgroups( if (fromlayers >= 0) { idx_src = fromlayers; - BLI_assert(idx_src < BLI_listbase_count(&ob_src->defbase)); + if (idx_src >= BLI_listbase_count(&ob_src->defbase)) { + /* This can happen when vgroups are removed from source object... + * Remapping would be really tricky here, we'd need to go over all objects in Main everytime we delete + * a vgroup... for now, simpler and safer to abort. */ + return false; + } } else if ((idx_src = ob_src->actdef - 1) == -1) { return false;