From f4abd3cfc43cff5b0b8c1df85bf2983fbf45906a Mon Sep 17 00:00:00 2001 From: Bastien Montagne Date: Tue, 27 Jul 2021 17:39:46 +0200 Subject: Fix LibOverride crashing in some cases where reference linked data gets MIA. When the root of an override hierarchy disapears, there is no way to do a proper resync, just abort. Reported by studio, thx. --- source/blender/blenkernel/intern/lib_override.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/source/blender/blenkernel/intern/lib_override.c b/source/blender/blenkernel/intern/lib_override.c index 0ef9692f7e5..8b63594955f 100644 --- a/source/blender/blenkernel/intern/lib_override.c +++ b/source/blender/blenkernel/intern/lib_override.c @@ -1013,6 +1013,15 @@ bool BKE_lib_override_library_resync(Main *bmain, ID *id_root_reference = id_root->override_library->reference; + if (id_root_reference->tag & LIB_TAG_MISSING) { + BKE_reportf(reports != NULL ? reports->reports : NULL, + RPT_ERROR, + "impossible to resync data-block %s and its dependencies, as its linked reference " + "is missing", + id_root->name + 2); + return false; + } + BKE_main_relations_create(bmain, 0); LibOverrideGroupTagData data = {.bmain = bmain, .scene = scene, -- cgit v1.2.3