Commit: b01d2ea72ac17d93083cab974563b48d729faf7a Author: Bastien Montagne Date: Mon May 25 15:26:58 2020 +0200 Branches: master https://developer.blender.org/rBb01d2ea72ac17d93083cab974563b48d729faf7a
Libquery: Refactor: add bmain to data passed to callback. No reason to enforce defining own callback user data for something that controlling has already available... =================================================================== M source/blender/blenkernel/BKE_lib_query.h M source/blender/blenkernel/intern/lib_id.c M source/blender/blenkernel/intern/lib_query.c M source/blender/editors/undo/memfile_undo.c =================================================================== diff --git a/source/blender/blenkernel/BKE_lib_query.h b/source/blender/blenkernel/BKE_lib_query.h index fac1852eafe..c5a25e8e7af 100644 --- a/source/blender/blenkernel/BKE_lib_query.h +++ b/source/blender/blenkernel/BKE_lib_query.h @@ -94,6 +94,8 @@ enum { typedef struct LibraryIDLinkCallbackData { void *user_data; + /** Main database used to call `BKE_library_foreach_ID_link()`. */ + struct Main *bmain; /** * 'Real' ID, the one that might be in bmain, only differs from self_id when the later is an * embedded one. diff --git a/source/blender/blenkernel/intern/lib_id.c b/source/blender/blenkernel/intern/lib_id.c index 9e8c8c36c63..ba5a169b4ee 100644 --- a/source/blender/blenkernel/intern/lib_id.c +++ b/source/blender/blenkernel/intern/lib_id.c @@ -305,7 +305,7 @@ void BKE_id_clear_newpoin(ID *id) static int lib_id_expand_local_cb(LibraryIDLinkCallbackData *cb_data) { - Main *bmain = cb_data->user_data; + Main *bmain = cb_data->bmain; ID *id_self = cb_data->id_self; ID **id_pointer = cb_data->id_pointer; int const cb_flag = cb_data->cb_flag; @@ -343,7 +343,7 @@ static int lib_id_expand_local_cb(LibraryIDLinkCallbackData *cb_data) */ void BKE_lib_id_expand_local(Main *bmain, ID *id) { - BKE_library_foreach_ID_link(bmain, id, lib_id_expand_local_cb, bmain, IDWALK_READONLY); + BKE_library_foreach_ID_link(bmain, id, lib_id_expand_local_cb, NULL, IDWALK_READONLY); } /** diff --git a/source/blender/blenkernel/intern/lib_query.c b/source/blender/blenkernel/intern/lib_query.c index 015fa235a06..dca3ea189a8 100644 --- a/source/blender/blenkernel/intern/lib_query.c +++ b/source/blender/blenkernel/intern/lib_query.c @@ -122,6 +122,7 @@ bool BKE_lib_query_foreachid_process(LibraryForeachIDData *data, ID **id_pp, int ID *old_id = *id_pp; const int callback_return = data->callback(&(struct LibraryIDLinkCallbackData){ .user_data = data->user_data, + .bmain = data->bmain, .id_owner = data->owner_id, .id_self = data->self_id, .id_pointer = id_pp, diff --git a/source/blender/editors/undo/memfile_undo.c b/source/blender/editors/undo/memfile_undo.c index f22e18de7a1..2df26abe8b3 100644 --- a/source/blender/editors/undo/memfile_undo.c +++ b/source/blender/editors/undo/memfile_undo.c @@ -216,7 +216,7 @@ static void memfile_undosys_step_decode(struct bContext *C, FOREACH_MAIN_ID_BEGIN (bmain, id) { if (id->tag & LIB_TAG_UNDO_OLD_ID_REUSED) { BKE_library_foreach_ID_link( - bmain, id, memfile_undosys_step_id_reused_cb, bmain, IDWALK_READONLY); + bmain, id, memfile_undosys_step_id_reused_cb, NULL, IDWALK_READONLY); } /* Tag depsgraph to update data-block for changes that happened between the _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs