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 <montagne29@wanadoo.fr>2018-06-16 17:19:53 +0300
committerBastien Montagne <montagne29@wanadoo.fr>2018-06-16 17:22:00 +0300
commitace8ad861de78a19645cdf87e138eda6bc66ea3e (patch)
tree71eea95ebc3052f8fa4a14d6bb9c5342466b2374 /source/blender/blenkernel/intern/deform.c
parent35c71aed2591637f5d06ec002ef20ac2901d916a (diff)
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...
Diffstat (limited to 'source/blender/blenkernel/intern/deform.c')
-rw-r--r--source/blender/blenkernel/intern/deform.c7
1 files changed, 6 insertions, 1 deletions
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;