Fix T79692: Full copy of scene makes Blender freeze if there is content directly in the master collection.

Old and new collections are the same data in Master collection case
here, so we cannot consider the `gobject` listbase of `collection_old`
as always immutable.
This commit is contained in:
Bastien Montagne
2020-08-11 18:46:47 +02:00
parent eca062b9cb
commit d2c150772a

View File

@@ -408,9 +408,9 @@ static Collection *collection_duplicate_recursive(Main *bmain,
}
if (do_objects) {
/* We can loop on collection_old's objects, that list is currently identical the collection_new
* objects, and won't be changed here. */
LISTBASE_FOREACH (CollectionObject *, cob, &collection_old->gobject) {
/* We can loop on collection_old's objects, but have to consider it mutable because with master
* collections collection_old and collection_new are the same data here. */
LISTBASE_FOREACH_MUTABLE (CollectionObject *, cob, &collection_old->gobject) {
Object *ob_old = cob->ob;
Object *ob_new = (Object *)ob_old->id.newid;