diff options
author | Bastien Montagne <bastien@blender.org> | 2020-08-28 17:58:40 +0300 |
---|---|---|
committer | Bastien Montagne <bastien@blender.org> | 2020-08-28 17:58:40 +0300 |
commit | 4a17508c6d2a24dfb7c018ae49c80f12b4d3e610 (patch) | |
tree | 4557e58f7491086238aa8dc911c1e84935c641ee /source | |
parent | 62e2d92aed25fe4da91ed380719ec341b3e0074b (diff) | |
parent | ddbf41d88d43a544c65c18f756fca7ab28ce5620 (diff) |
Merge branch 'blender-v2.90-release' into master
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/blenkernel/intern/lib_id.c | 7 |
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 678f717efe4..dfe939aa878 100644 --- a/source/blender/blenkernel/intern/lib_id.c +++ b/source/blender/blenkernel/intern/lib_id.c @@ -344,8 +344,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); |