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>2018-11-23 14:00:34 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2018-11-23 14:03:26 +0300
commitfc830ce78f67ce3248b80f0e2a53cbc978f7040c (patch)
tree8cfcde55b7f22ecce2cda1d01554e25bdf07c9a1 /source/blender/blenkernel/intern/library_remap.c
parent4b06d0bf51c38c4358c07823358589ca1cdc6f47 (diff)
Fix T57616: Deleting particle system instance object leads to crash
Explicitly tag copy-on-write form library remap. Previously, this tag was used implicitly via geometry/transform tagging, which worked ok for objects. For non-objects we do need to ensure all copies has correct pointer and the only way to do so is to pass tag explicitly. There is probably more places in the library remap where this is needed, but not being familiar with the code makes it difficult to spot where possible tags are missing.
Diffstat (limited to 'source/blender/blenkernel/intern/library_remap.c')
-rw-r--r--source/blender/blenkernel/intern/library_remap.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/source/blender/blenkernel/intern/library_remap.c b/source/blender/blenkernel/intern/library_remap.c
index 404028f336e..ba151ca6925 100644
--- a/source/blender/blenkernel/intern/library_remap.c
+++ b/source/blender/blenkernel/intern/library_remap.c
@@ -241,7 +241,8 @@ static int foreach_libblock_remap_callback(void *user_data, ID *id_self, ID **id
else {
if (!is_never_null) {
*id_p = new_id;
- DEG_id_tag_update_ex(id_remap_data->bmain, id_self, DEG_TAG_TRANSFORM | DEG_TAG_TIME | DEG_TAG_GEOMETRY);
+ DEG_id_tag_update_ex(id_remap_data->bmain, id_self,
+ DEG_TAG_COPY_ON_WRITE | DEG_TAG_TRANSFORM | DEG_TAG_GEOMETRY);
}
if (cb_flag & IDWALK_CB_USER) {
id_us_min(old_id);