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.
This commit is contained in:
Bastien Montagne 2019-11-08 17:47:48 +01:00
parent 76be5b5bf5
commit 8c695404a4
Notes: blender-bot 2023-02-14 00:30:24 +01:00
Referenced by issue #70778, Library Override dissabled after re-instancing same collection in different scene.
1 changed files with 7 additions and 4 deletions

View File

@ -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. */
}
}
}