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>2020-01-13 14:16:23 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2020-01-13 14:16:23 +0300
commita60606e4678a3291f89ebac8ec5f94f5a6a40aff (patch)
tree7699f69194c71fd070199e7d4b9162185d58a043 /source/blender/depsgraph
parent830150c7b9e07a7e2d464ab16c7b14fd82a6968a (diff)
Fix T73029: Crash transforming object
Was caused by recent animation backup added to depsgraph as a part of another bugfix. This commit effectively disables the animation backup, restoring bug related on handlers, but makes it possible to interact with objects again. Will re-iterate over handlers+animated properties.
Diffstat (limited to 'source/blender/depsgraph')
-rw-r--r--source/blender/depsgraph/intern/builder/deg_builder_relations.cc5
-rw-r--r--source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_animation.cc10
2 files changed, 15 insertions, 0 deletions
diff --git a/source/blender/depsgraph/intern/builder/deg_builder_relations.cc b/source/blender/depsgraph/intern/builder/deg_builder_relations.cc
index a3439f80e4b..31c1b0361f8 100644
--- a/source/blender/depsgraph/intern/builder/deg_builder_relations.cc
+++ b/source/blender/depsgraph/intern/builder/deg_builder_relations.cc
@@ -2675,6 +2675,10 @@ void DepsgraphRelationBuilder::build_copy_on_write_relations(IDNode *id_node)
}
}
+#if 0
+ /* NOTE: Relation is disabled since AnimationBackup() is disabled.
+ * See comment in AnimationBackup:init_from_id(). */
+
/* Copy-on-write of write will iterate over f-curves to store current values corresponding
* to their RNA path. This means that action must be copied prior to the ID's copy-on-write,
* otherwise depsgraph might try to access freed data. */
@@ -2689,6 +2693,7 @@ void DepsgraphRelationBuilder::build_copy_on_write_relations(IDNode *id_node)
RELATION_FLAG_GODMODE | RELATION_FLAG_NO_FLUSH);
}
}
+#endif
}
/* **** ID traversal callbacks functions **** */
diff --git a/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_animation.cc b/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_animation.cc
index d5f29006434..cc4935431d1 100644
--- a/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_animation.cc
+++ b/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_animation.cc
@@ -100,6 +100,14 @@ void AnimationBackup::reset()
void AnimationBackup::init_from_id(ID *id)
{
+ /* NOTE: This animation backup nicely preserves values which are animated and
+ * are not touched by frame/depsgraph post_update handler.
+ *
+ * But it makes it impossible to have user edits to animated properties: for
+ * example, translation of object with animated location will not work with
+ * the current version of backup. */
+ return;
+
AnimatedPropertyStoreCalbackData data;
data.backup = this;
data.id = id;
@@ -109,6 +117,8 @@ void AnimationBackup::init_from_id(ID *id)
void AnimationBackup::restore_to_id(ID *id)
{
+ return;
+
PointerRNA id_pointer_rna;
RNA_id_pointer_create(id, &id_pointer_rna);
for (const AnimationValueBackup &value_backup : values_backup) {