diff options
author | Bastien Montagne <bastien@blender.org> | 2022-02-14 15:26:42 +0300 |
---|---|---|
committer | Bastien Montagne <bastien@blender.org> | 2022-02-14 15:26:42 +0300 |
commit | 06a492cfdc78049adff6923636faa5d13b90cc57 (patch) | |
tree | 025023885e28caf5201d4bd0145cb390bc5f8cea /source/blender/blenkernel/intern/lib_override.c | |
parent | c32d3a175de20ab8865cac5ff3c40adf503432f6 (diff) |
Fix (studio reported) crash in new resync code.
We do not always resync/replace the root ID of a hierarchy now that we
do partial resync.
Diffstat (limited to 'source/blender/blenkernel/intern/lib_override.c')
-rw-r--r-- | source/blender/blenkernel/intern/lib_override.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/source/blender/blenkernel/intern/lib_override.c b/source/blender/blenkernel/intern/lib_override.c index f53780d1cbb..02cdd6fcd20 100644 --- a/source/blender/blenkernel/intern/lib_override.c +++ b/source/blender/blenkernel/intern/lib_override.c @@ -1696,10 +1696,12 @@ static bool lib_override_library_resync(Main *bmain, BKE_id_multi_tagged_delete(bmain); - /* At this point, `id_root` has very likely been deleted, we need to update it to its new - * version. + /* At this point, `id_root` may have been resynced, therefore deleted. In that case we need to + * update it to its new version. */ - id_root = id_root_reference->newid; + if (id_root_reference->newid != NULL) { + id_root = id_root_reference->newid; + } if (user_edited_overrides_deletion_count > 0) { BKE_reportf(reports != NULL ? reports->reports : NULL, |