[Bf-blender-cvs] [ace8ad861de] master: Fix T55427: Removing Vertex Group used by Data Transfer Modifier results in crash.

Bastien Montagne noreply at git.blender.org
Sat Jun 16 16:22:06 CEST 2018


Commit: ace8ad861de78a19645cdf87e138eda6bc66ea3e
Author: Bastien Montagne
Date:   Sat Jun 16 16:19:53 2018 +0200
Branches: master
https://developer.blender.org/rBace8ad861de78a19645cdf87e138eda6bc66ea3e

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...

===================================================================

M	source/blender/blenkernel/intern/deform.c

===================================================================

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;



More information about the Bf-blender-cvs mailing list