diff options
author | Campbell Barton <ideasman42@gmail.com> | 2020-09-08 08:32:43 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2020-09-08 09:14:33 +0300 |
commit | e467c54d58c88316d959f2481dc7484037a4c0be (patch) | |
tree | 4cdf31ed7bac3efeef7f75075920cb23adfaee16 /source/blender/blenkernel/intern/blender_copybuffer.c | |
parent | 48690d967a7731367cda01ab8dca64e7f4c3f6b5 (diff) |
Refactor: move library linking arguments into a parameter struct
Move arguments to BLO_library_link_{begin/named_part/end} into
a single parameter struct, to ensure arguments always match.
This allows is to skip tagging ID's LIB_TAG_DOIT when it's not needed,
previously it was always cleared just in case it was needed.
This also makes it possible to remove BLO_library_link_named_part_ex
which was only used when tagging was needed.
Diffstat (limited to 'source/blender/blenkernel/intern/blender_copybuffer.c')
-rw-r--r-- | source/blender/blenkernel/intern/blender_copybuffer.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/source/blender/blenkernel/intern/blender_copybuffer.c b/source/blender/blenkernel/intern/blender_copybuffer.c index e950e94655a..9f5e038fb82 100644 --- a/source/blender/blenkernel/intern/blender_copybuffer.c +++ b/source/blender/blenkernel/intern/blender_copybuffer.c @@ -93,9 +93,12 @@ bool BKE_copybuffer_read(Main *bmain_dst, return false; } /* Here appending/linking starts. */ - Main *mainl = BLO_library_link_begin(bmain_dst, &bh, libname); + const int flag = 0; + struct LibraryLink_Params liblink_params; + BLO_library_link_params_init(&liblink_params, bmain_dst, flag); + Main *mainl = BLO_library_link_begin(&bh, libname, &liblink_params); BLO_library_link_copypaste(mainl, bh, id_types_mask); - BLO_library_link_end(mainl, &bh, 0, NULL, NULL, NULL, NULL); + BLO_library_link_end(mainl, &bh, &liblink_params); /* Mark all library linked objects to be updated. */ BKE_main_lib_objects_recalc_all(bmain_dst); IMB_colormanagement_check_file_config(bmain_dst); @@ -144,11 +147,13 @@ int BKE_copybuffer_paste(bContext *C, BKE_main_id_tag_all(bmain, LIB_TAG_PRE_EXISTING, true); /* here appending/linking starts */ - mainl = BLO_library_link_begin(bmain, &bh, libname); + struct LibraryLink_Params liblink_params; + BLO_library_link_params_init_with_context(&liblink_params, bmain, flag, scene, view_layer, v3d); + mainl = BLO_library_link_begin(&bh, libname, &liblink_params); const int num_pasted = BLO_library_link_copypaste(mainl, bh, id_types_mask); - BLO_library_link_end(mainl, &bh, flag, bmain, scene, view_layer, v3d); + BLO_library_link_end(mainl, &bh, &liblink_params); /* mark all library linked objects to be updated */ BKE_main_lib_objects_recalc_all(bmain); |