Fix #118693: Crash on linking collection, then undoing and re-doing operation.

Do not blindly iterate on a ListBase when you add or remove items
to/from it...

Own mistake in readfile refactor in 06/2023 (ebb5643e59).
This commit is contained in:
Bastien Montagne
2024-02-27 17:28:29 +01:00
parent 9fe3de2289
commit 40480fe226

View File

@@ -3698,7 +3698,9 @@ BlendFileData *blo_read_file_internal(FileData *fd, const char *filepath)
Main *old_main = static_cast<Main *>(fd->old_mainlist->first);
BLI_assert(old_main != nullptr);
BLI_assert(old_main->curlib == nullptr);
for (Main *libmain = old_main->next; libmain != nullptr; libmain = libmain->next) {
Main *libmain, *libmain_next;
for (libmain = old_main->next; libmain != nullptr; libmain = libmain_next) {
libmain_next = libmain->next;
read_undo_move_libmain_data(fd, new_main, old_main, libmain, nullptr);
}
}