Revert "Fix (unreported) critical mistake in Collection liblink code in readfile.c."
This reverts commit 517f32045c
.
This commit is contained in:
parent
91f07fbfd6
commit
f575a14801
|
@ -6433,6 +6433,8 @@ static void lib_link_collection_data(FileData *fd, Library *lib, Collection *col
|
|||
for (CollectionChild *child = collection->children.first; child != NULL; child = child->next) {
|
||||
child->collection = newlibadr(fd, lib, child->collection);
|
||||
}
|
||||
|
||||
BKE_collection_parent_relations_rebuild(collection);
|
||||
}
|
||||
|
||||
static void lib_link_collection(FileData *fd, Main *UNUSED(bmain), Collection *collection)
|
||||
|
@ -10137,9 +10139,18 @@ static void lib_link_all(FileData *fd, Main *bmain)
|
|||
* so simpler to just use it directly in this single call. */
|
||||
BLO_main_validate_shapekeys(bmain, NULL);
|
||||
|
||||
/* We have to rebuild that runtime information *after* all data-blocks have been properly linked.
|
||||
*/
|
||||
BKE_main_collections_parent_relations_rebuild(bmain);
|
||||
if (fd->memfile != NULL) {
|
||||
/* When doing redo, we perform a tremendous amount of esoteric magic tricks to avoid having to
|
||||
* re-read all library data-blocks.
|
||||
* Unfortunately, that means that we do not clear Collections' parents lists, which then get
|
||||
* improperly extended in some cases by lib_link_scene() and lib_link_collection() calls above
|
||||
* (when one local collection is parent of linked ones).
|
||||
* I do not really see a way to address that issue, besides brute force call below which
|
||||
* invalidates and re-creates all parenting relationships between collections. Yet another
|
||||
* example of why it is such a bad idea to keep that kind of double-linked relationships info
|
||||
* 'permanently' in our data structures... */
|
||||
BKE_main_collections_parent_relations_rebuild(bmain);
|
||||
}
|
||||
|
||||
#ifndef NDEBUG
|
||||
/* Double check we do not have any 'need link' tag remaining, this should never be the case once
|
||||
|
|
Loading…
Reference in New Issue