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:
-rw-r--r--source/blender/blenkernel/intern/lib_id.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/source/blender/blenkernel/intern/lib_id.c b/source/blender/blenkernel/intern/lib_id.c
index 2052a1e8536..52f5bf067ca 100644
--- a/source/blender/blenkernel/intern/lib_id.c
+++ b/source/blender/blenkernel/intern/lib_id.c
@@ -342,8 +342,11 @@ static int lib_id_expand_local_cb(LibraryIDLinkCallbackData *cb_data)
}
if (cb_flag & IDWALK_CB_EMBEDDED) {
- /* Embedded data-blocks need to be made fully local as well. */
- if (*id_pointer != NULL) {
+ /* Embedded data-blocks need to be made fully local as well.
+ * Note however that in some cases (when owner ID had to be duplicated instead of being made
+ * local directly), its embedded IDs should also have already been duplicated, and hence be
+ * fully local here already. */
+ if (*id_pointer != NULL && ID_IS_LINKED(*id_pointer)) {
BLI_assert(*id_pointer != id_self);
lib_id_clear_library_data_ex(bmain, *id_pointer);