[Bf-blender-cvs] [b0c463a2745] blender2.8: Fix T57889: Crashes on undo and redo while working with image or image empty

Sergey Sharybin noreply at git.blender.org
Mon Nov 19 12:05:52 CET 2018


Commit: b0c463a274564b82aa1a76659911dbe2780c0a17
Author: Sergey Sharybin
Date:   Mon Nov 19 12:04:02 2018 +0100
Branches: blender2.8
https://developer.blender.org/rBb0c463a274564b82aa1a76659911dbe2780c0a17

Fix T57889: Crashes on undo and redo while working with image or image empty

===================================================================

M	source/blender/depsgraph/intern/builder/deg_builder_relations.cc

===================================================================

diff --git a/source/blender/depsgraph/intern/builder/deg_builder_relations.cc b/source/blender/depsgraph/intern/builder/deg_builder_relations.cc
index 5acb8a7b1eb..3353d42824d 100644
--- a/source/blender/depsgraph/intern/builder/deg_builder_relations.cc
+++ b/source/blender/depsgraph/intern/builder/deg_builder_relations.cc
@@ -104,6 +104,7 @@ extern "C" {
 
 #include "intern/builder/deg_builder.h"
 #include "intern/builder/deg_builder_pchanmap.h"
+#include "intern/eval/deg_eval_copy_on_write.h"
 
 #include "intern/nodes/deg_node.h"
 #include "intern/nodes/deg_node_component.h"
@@ -2488,12 +2489,15 @@ void DepsgraphRelationBuilder::build_copy_on_write_relations(IDDepsNode *id_node
 		Object *object = (Object *)id_orig;
 		ID *object_data_id = (ID *)object->data;
 		if (object_data_id != NULL) {
-			OperationKey data_copy_on_write_key(object_data_id,
-			                                    DEG_NODE_TYPE_COPY_ON_WRITE,
-			                                    DEG_OPCODE_COPY_ON_WRITE);
-			DepsRelation *rel = add_relation(
-			        data_copy_on_write_key, copy_on_write_key, "Eval Order");
-			rel->flag |= DEPSREL_FLAG_GODMODE;
+			if (deg_copy_on_write_is_needed(object_data_id)) {
+				OperationKey data_copy_on_write_key(object_data_id,
+				                                    DEG_NODE_TYPE_COPY_ON_WRITE,
+				                                    DEG_OPCODE_COPY_ON_WRITE);
+				DepsRelation *rel = add_relation(data_copy_on_write_key,
+				                                 copy_on_write_key,
+				                                 "Eval Order");
+				rel->flag |= DEPSREL_FLAG_GODMODE;
+			}
 		}
 		else {
 			BLI_assert(object->type == OB_EMPTY);



More information about the Bf-blender-cvs mailing list