Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBastien Montagne <bastien@blender.org>2021-07-27 18:39:46 +0300
committerBastien Montagne <bastien@blender.org>2021-07-27 18:41:15 +0300
commitf4abd3cfc43cff5b0b8c1df85bf2983fbf45906a (patch)
tree53128aa0a586a846b0aaaa57a2bbd962166b1f56
parent4a02b9ffeb018ced11768ca99935fda5fa5f7da0 (diff)
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.
-rw-r--r--source/blender/blenkernel/intern/lib_override.c9
1 files changed, 9 insertions, 0 deletions
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,