From 281e094e16b49bd1c3aa211d5d000c4a211c97ef Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 23 Jan 2013 05:42:45 +0000 Subject: 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. --- source/blender/modifiers/intern/MOD_boolean.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'source/blender/modifiers/intern/MOD_boolean.c') diff --git a/source/blender/modifiers/intern/MOD_boolean.c b/source/blender/modifiers/intern/MOD_boolean.c index 0a48003fc81..a97ca2f9243 100644 --- a/source/blender/modifiers/intern/MOD_boolean.c +++ b/source/blender/modifiers/intern/MOD_boolean.c @@ -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; -- cgit v1.2.3