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:
authorSergey Sharybin <sergey.vfx@gmail.com>2017-07-19 12:57:20 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2017-07-19 16:20:07 +0300
commit5d9a1b440b13bcd6f4255e7205421c0495e7ea12 (patch)
tree6103239cdca0150ed8652dd995e797eb1da979c5 /source/blender/depsgraph/intern/builder/deg_builder_nodes_rig.cc
parenta532fe561ec18f2a1676a0dcb548380aa25416fe (diff)
Depsgraph: Fix wrong ID remapping when armature object is constructed prior to it's targets
Previously it was possible to run into situation when armature is constructed prior to objects which are used for it's constraints. This was causing wrong scene evaluation. Now we create placeholders for objects used by armature in case they don't have ID node yet, which ensures we have proper mapping from original to copy-on-write ID pointer.
Diffstat (limited to 'source/blender/depsgraph/intern/builder/deg_builder_nodes_rig.cc')
-rw-r--r--source/blender/depsgraph/intern/builder/deg_builder_nodes_rig.cc4
1 files changed, 2 insertions, 2 deletions
diff --git a/source/blender/depsgraph/intern/builder/deg_builder_nodes_rig.cc b/source/blender/depsgraph/intern/builder/deg_builder_nodes_rig.cc
index 69f02603f40..d567dd02740 100644
--- a/source/blender/depsgraph/intern/builder/deg_builder_nodes_rig.cc
+++ b/source/blender/depsgraph/intern/builder/deg_builder_nodes_rig.cc
@@ -142,10 +142,10 @@ void DepsgraphNodeBuilder::build_rig(Scene *scene, Object *object)
Scene *scene_cow = get_cow_datablock(scene);
IDDepsNode *object_id_node = add_id_node(&object->id);
Object *object_cow = (Object *)deg_expand_copy_on_write_datablock(
- m_graph, object_id_node);
+ m_graph, object_id_node, true);
IDDepsNode *armature_id_node = add_id_node(&armature->id);
bArmature *armature_cow = (bArmature *)deg_expand_copy_on_write_datablock(
- m_graph, armature_id_node);
+ m_graph, armature_id_node, true);
#else
Scene *scene_cow = scene;
Object *object_cow = object;