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:
authorBastien Montagne <b.mont29@gmail.com>2019-11-08 19:47:48 +0300
committerBastien Montagne <b.mont29@gmail.com>2019-11-08 19:47:48 +0300
commit8c695404a481488879eb811b04e126fcdb92a915 (patch)
tree44e91fa3b4aa0d527db7f9af5dd8f40bf4949625
parent76be5b5bf5c830f8a3a3640fcf439bdca3a9aa89 (diff)
Fix T70778: Library Override dissabled after re-instancing same collection in different scene.
Very stupid mistake in own new generic ID lib_link function, that would try to link ID pointers for all data-blocks, not only those actually needing it.
-rw-r--r--source/blender/blenloader/intern/readfile.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c
index 452e75081d6..167917f7b6a 100644
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@ -2618,10 +2618,13 @@ static void lib_link_id(FileData *fd, Main *main)
ID *id;
for (id = lb->first; id; id = id->next) {
- if (id->override_library) {
- id->override_library->reference = newlibadr_us(
- fd, id->lib, id->override_library->reference);
- id->override_library->storage = newlibadr_us(fd, id->lib, id->override_library->storage);
+ if (id->tag & LIB_TAG_NEED_LINK) {
+ if (id->override_library) {
+ id->override_library->reference = newlibadr_us(
+ fd, id->lib, id->override_library->reference);
+ id->override_library->storage = newlibadr_us(fd, id->lib, id->override_library->storage);
+ }
+ /* DO NOT clear LIB_TAG_NEED_LINK here, it is used again by per-ID-type linkers. */
}
}
}