[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [56698] trunk/blender/source/blender/ modifiers/intern: Fix #35317: crash with boolean modifier using an object whose library linked
Brecht Van Lommel
brechtvanlommel at pandora.be
Sun May 12 11:14:08 CEST 2013
Revision: 56698
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=56698
Author: blendix
Date: 2013-05-12 09:14:07 +0000 (Sun, 12 May 2013)
Log Message:
-----------
Fix #35317: crash with boolean modifier using an object whose library linked
mesh datablock went missing.
Modified Paths:
--------------
trunk/blender/source/blender/modifiers/intern/MOD_array.c
trunk/blender/source/blender/modifiers/intern/MOD_boolean.c
Modified: trunk/blender/source/blender/modifiers/intern/MOD_array.c
===================================================================
--- trunk/blender/source/blender/modifiers/intern/MOD_array.c 2013-05-12 08:42:24 UTC (rev 56697)
+++ trunk/blender/source/blender/modifiers/intern/MOD_array.c 2013-05-12 09:14:07 UTC (rev 56698)
@@ -346,9 +346,9 @@
BMOpSlot *slot_targetmap = NULL; /* for weldop */
/* need to avoid infinite recursion here */
- if (amd->start_cap && amd->start_cap != ob)
+ if (amd->start_cap && amd->start_cap != ob && amd->start_cap->type == OB_MESH)
start_cap = mesh_get_derived_final(scene, amd->start_cap, CD_MASK_MESH);
- if (amd->end_cap && amd->end_cap != ob)
+ if (amd->end_cap && amd->end_cap != ob && amd->end_cap->type == OB_MESH)
end_cap = mesh_get_derived_final(scene, amd->end_cap, CD_MASK_MESH);
unit_m4(offset);
Modified: trunk/blender/source/blender/modifiers/intern/MOD_boolean.c
===================================================================
--- trunk/blender/source/blender/modifiers/intern/MOD_boolean.c 2013-05-12 08:42:24 UTC (rev 56697)
+++ trunk/blender/source/blender/modifiers/intern/MOD_boolean.c 2013-05-12 09:14:07 UTC (rev 56698)
@@ -136,7 +136,7 @@
* in other scenes when compositing */
if (bmd->object != ob) {
/* weak! - but we can too easy end up with circular dep crash otherwise */
- if (modifiers_findByType(bmd->object, eModifierType_Boolean) == NULL) {
+ if (bmd->object->type == OB_MESH && modifiers_findByType(bmd->object, eModifierType_Boolean) == NULL) {
dm = mesh_get_derived_final(md->scene, bmd->object, CD_MASK_MESH);
}
else {
More information about the Bf-blender-cvs
mailing list