diff options
author | Bastien Montagne <bastien@blender.org> | 2020-06-17 15:58:47 +0300 |
---|---|---|
committer | Bastien Montagne <bastien@blender.org> | 2020-06-17 18:06:05 +0300 |
commit | 514f80b0c4f6375d1a01db1f2e32b495c23c17ca (patch) | |
tree | 1f9f50c5f2a0d2d33d45a41a29d9c88fde861369 /source | |
parent | 26c0ca3aa7f4f6e3836aac1636bf60c302afd12e (diff) |
Fix (unreported) broken logic in `BKE_libblock_relink_to_newid`
Existing code would not follow as expected into new sub-IDs if they were
only encoutered once in usages by parent IDs...
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/blenkernel/intern/lib_remap.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/source/blender/blenkernel/intern/lib_remap.c b/source/blender/blenkernel/intern/lib_remap.c index ba986b1661b..d4246056efe 100644 --- a/source/blender/blenkernel/intern/lib_remap.c +++ b/source/blender/blenkernel/intern/lib_remap.c @@ -666,9 +666,10 @@ static int id_relink_to_newid_looper(LibraryIDLinkCallbackData *cb_data) /* See: NEW_ID macro */ if (id->newid) { BKE_library_update_ID_link_user(id->newid, id, cb_flag); - *id_pointer = id->newid; + id = id->newid; + *id_pointer = id; } - else if (id->tag & LIB_TAG_NEW) { + if (id->tag & LIB_TAG_NEW) { id->tag &= ~LIB_TAG_NEW; BKE_libblock_relink_to_newid(id); } |