workaround [#32866] Crash by cyclic use of Boolean Modifier

officially - modifiers shouldn't calc other objects derived mesh, but in some cases its needed at the moment for certain scenes, so just disallow booleans depending on booleans.
This commit is contained in:
Campbell Barton
2013-01-23 05:42:45 +00:00
parent 833104e647
commit 281e094e16

View File

@@ -135,7 +135,13 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
* in some cases the depsgraph fails us - especially for objects
* in other scenes when compositing */
if (bmd->object != ob) {
dm = mesh_get_derived_final(md->scene, bmd->object, CD_MASK_MESH);
/* weak! - but we can too easy end up with circular dep crash otherwise */
if (modifiers_findByType(bmd->object, eModifierType_Boolean) == false) {
dm = mesh_get_derived_final(md->scene, bmd->object, CD_MASK_MESH);
}
else {
dm = bmd->object->derivedFinal;
}
}
else {
dm = NULL;