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:
authorSebastian Parborg <darkdefende@gmail.com>2019-08-06 15:32:29 +0300
committerSebastian Parborg <darkdefende@gmail.com>2019-08-06 15:34:48 +0300
commit39f005eae8eed8b939579aff8c9a05a4f50e5e38 (patch)
tree7e66b13fadda8ac785d4322fed075fb3206fa5d9 /source/blender/modifiers
parentdcad1eb03ccc0782229d81cdbeaa71c035c09955 (diff)
Fix crash when opening files with missing armature libaries
In the case where the library is missing, the armature object is replaced with an empty. This would crash the armature modifier. Now we check if the armature object really is an armature or not.
Diffstat (limited to 'source/blender/modifiers')
-rw-r--r--source/blender/modifiers/intern/MOD_armature.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/source/blender/modifiers/intern/MOD_armature.c b/source/blender/modifiers/intern/MOD_armature.c
index 72215659915..7ae5fda7111 100644
--- a/source/blender/modifiers/intern/MOD_armature.c
+++ b/source/blender/modifiers/intern/MOD_armature.c
@@ -79,7 +79,12 @@ static bool isDisabled(const struct Scene *UNUSED(scene),
{
ArmatureModifierData *amd = (ArmatureModifierData *)md;
- return !amd->object;
+ /* The object type check is only needed here in case we have a placeholder
+ * object assigned (because the library containing the armature is missing).
+ *
+ * In other cases it should be impossible.
+ */
+ return !amd->object || amd->object->type != OB_ARMATURE;
}
static void foreachObjectLink(ModifierData *md, Object *ob, ObjectWalkFunc walk, void *userData)