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:
authorSybren A. Stüvel <sybren@blender.org>2020-02-21 13:16:59 +0300
committerSybren A. Stüvel <sybren@blender.org>2020-02-21 13:16:59 +0300
commit94e180bd806ab3b21db07afe4962de666b407217 (patch)
tree48c0d099fe476220bf20aae066ae15562e812a07 /source/blender/depsgraph
parentbe2bc97eba499c48e3856c8e5ec4d869e28b4d04 (diff)
Fix: Drivers on hide_viewport and hide_render throw warnings
This partially fixes T73593. The `add_relation(driver_key, property_entry_key, ...);` call can fail in the following situation: - A collection is linked, and instanced into the scene by an Empty. - The collection contains an object with a driver on its `hide_render` or `hide_viewport` property. As the object doesn't exist as a real object in the scene, it's added with `base_index=-1` to the depsgraph (see `DepsgraphNodeBuilder::build_collection()`). As a result the node for syncing the restrictflags back to the base isn't present in the depsgraph, and the `add_relation()` call failed. This commit fixes the warning, simply by not attempting to add the offending relation.
Diffstat (limited to 'source/blender/depsgraph')
-rw-r--r--source/blender/depsgraph/intern/builder/deg_builder_relations.cc6
1 files changed, 5 insertions, 1 deletions
diff --git a/source/blender/depsgraph/intern/builder/deg_builder_relations.cc b/source/blender/depsgraph/intern/builder/deg_builder_relations.cc
index e45644f001f..64fb15a465b 100644
--- a/source/blender/depsgraph/intern/builder/deg_builder_relations.cc
+++ b/source/blender/depsgraph/intern/builder/deg_builder_relations.cc
@@ -1488,7 +1488,11 @@ void DepsgraphRelationBuilder::build_driver_data(ID *id, FCurve *fcu)
}
else {
/* If it's not a Bone, handle the generic single dependency case. */
- add_relation(driver_key, property_entry_key, "Driver -> Driven Property");
+ Node *node_to = get_node(property_entry_key);
+ if (node_to != nullptr) {
+ add_relation(driver_key, property_entry_key, "Driver -> Driven Property");
+ }
+
/* Similar to the case with f-curves, driver might drive a nested
* data-block, which means driver execution should wait for that
* data-block to be copied. */