diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2018-12-07 13:17:34 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2018-12-07 13:37:44 +0300 |
commit | fff5df8108255b6579f802d769e6951e5dd96492 (patch) | |
tree | e45383aa281647d4bd5a0135de1a9b8f9371f3f6 /source/blender/depsgraph/intern/builder/deg_builder_relations_rig.cc | |
parent | 89121253dbecaefc6bc9bf020b556292132288e6 (diff) |
Depsgraph: Make data allocation dependency more robust
This fix aims to fix crash/assert failure related on wrong
evaluation order which happens when there is a cyclic
dependency involved.
The rationality of this change is that we can allow use
of uninitialized scalar value, but memory is better be
allocated.
This might not be ideal still, but worth a try.
Diffstat (limited to 'source/blender/depsgraph/intern/builder/deg_builder_relations_rig.cc')
-rw-r--r-- | source/blender/depsgraph/intern/builder/deg_builder_relations_rig.cc | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/source/blender/depsgraph/intern/builder/deg_builder_relations_rig.cc b/source/blender/depsgraph/intern/builder/deg_builder_relations_rig.cc index 8003fd5d313..ef021c09824 100644 --- a/source/blender/depsgraph/intern/builder/deg_builder_relations_rig.cc +++ b/source/blender/depsgraph/intern/builder/deg_builder_relations_rig.cc @@ -518,7 +518,8 @@ void DepsgraphRelationBuilder::build_rig(Object *object) /* Pose requires the B-Bone shape. */ add_relation(bone_segments_key, pose_done_key, - "PoseEval Result-Bone Link"); + "PoseEval Result-Bone Link", + DEPSREL_FLAG_GODMODE); add_relation(bone_segments_key, pose_cleanup_key, "Cleanup dependency"); @@ -575,7 +576,10 @@ void DepsgraphRelationBuilder::build_proxy_rig(Object *object) add_relation(bone_ready_key, bone_done_key, "Ready -> Done"); add_relation( bone_done_key, pose_cleanup_key, "Bone Done -> Pose Cleanup"); - add_relation(bone_done_key, pose_done_key, "Bone Done -> Pose Done"); + add_relation(bone_done_key, + pose_done_key, + "Bone Done -> Pose Done", + DEPSREL_FLAG_GODMODE); /* Make sure bone in the proxy is not done before it's FROM is done. */ if (pchan->bone && pchan->bone->segments > 1) { @@ -585,7 +589,8 @@ void DepsgraphRelationBuilder::build_proxy_rig(Object *object) DEG_OPCODE_BONE_SEGMENTS); add_relation(from_bone_segments_key, bone_done_key, - "Bone Segments -> Bone Done"); + "Bone Segments -> Bone Done", + DEPSREL_FLAG_GODMODE); } else { add_relation(from_bone_done_key, |