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:
authorCampbell Barton <ideasman42@gmail.com>2013-01-23 09:42:45 +0400
committerCampbell Barton <ideasman42@gmail.com>2013-01-23 09:42:45 +0400
commit281e094e16b49bd1c3aa211d5d000c4a211c97ef (patch)
treec29bdcf093c8a83cb58c5f758bb1e34bc6196600 /source/blender/modifiers/intern/MOD_boolean.c
parent833104e647c6ace00390d39c32e65c7845273f05 (diff)
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.
Diffstat (limited to 'source/blender/modifiers/intern/MOD_boolean.c')
-rw-r--r--source/blender/modifiers/intern/MOD_boolean.c8
1 files changed, 7 insertions, 1 deletions
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;