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 11:34:21 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2017-07-19 16:20:06 +0300
commit49e496118b5d76f323ceff60cfd552f08c127c76 (patch)
treebcc97ccdcb58d0846acdf32230af26a75e151bb2 /source/blender
parent44c6d45c2ed82765396b675702b2e4ceeb6766c2 (diff)
ID: Add run-time flag indicating that ID is coming from copy-on-write
Diffstat (limited to 'source/blender')
-rw-r--r--source/blender/depsgraph/intern/eval/deg_eval_copy_on_write.cc1
-rw-r--r--source/blender/depsgraph/intern/nodes/deg_node.cc1
-rw-r--r--source/blender/makesdna/DNA_ID.h3
3 files changed, 5 insertions, 0 deletions
diff --git a/source/blender/depsgraph/intern/eval/deg_eval_copy_on_write.cc b/source/blender/depsgraph/intern/eval/deg_eval_copy_on_write.cc
index aa34ce0c670..b8eb35747c8 100644
--- a/source/blender/depsgraph/intern/eval/deg_eval_copy_on_write.cc
+++ b/source/blender/depsgraph/intern/eval/deg_eval_copy_on_write.cc
@@ -576,6 +576,7 @@ ID *deg_expand_copy_on_write_datablock(const Depsgraph *depsgraph,
if (newid != NULL) {
MEM_freeN(newid);
}
+ id_cow->tag |= LIB_TAG_COPY_ON_WRITE;
return id_cow;
}
diff --git a/source/blender/depsgraph/intern/nodes/deg_node.cc b/source/blender/depsgraph/intern/nodes/deg_node.cc
index a652cf284b1..889d1dc4243 100644
--- a/source/blender/depsgraph/intern/nodes/deg_node.cc
+++ b/source/blender/depsgraph/intern/nodes/deg_node.cc
@@ -182,6 +182,7 @@ void IDDepsNode::init(const ID *id, const char *UNUSED(subdata))
id_cow = (ID *)BKE_libblock_alloc_notest(GS(id->name));
DEG_COW_PRINT("Create shallow copy for %s: id_orig=%p id_cow=%p\n",
id_orig->name, id_orig, id_cow);
+ id_cow->tag |= LIB_TAG_COPY_ON_WRITE;
#else
id_cow = id_orig;
#endif
diff --git a/source/blender/makesdna/DNA_ID.h b/source/blender/makesdna/DNA_ID.h
index ed29f2336de..48da28b6bbe 100644
--- a/source/blender/makesdna/DNA_ID.h
+++ b/source/blender/makesdna/DNA_ID.h
@@ -363,6 +363,9 @@ enum {
LIB_TAG_ID_RECALC_DATA = 1 << 13,
LIB_TAG_ANIM_NO_RECALC = 1 << 14,
LIB_TAG_ID_RECALC_ALL = (LIB_TAG_ID_RECALC | LIB_TAG_ID_RECALC_DATA),
+
+ /* The datablock is a copy-on-write version. */
+ LIB_TAG_COPY_ON_WRITE = (1 << 15),
};
/* To filter ID types (filter_id) */