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...
This commit is contained in:
Bastien Montagne 2020-05-25 15:26:58 +02:00
parent e0ff032711
commit b01d2ea72a
4 changed files with 6 additions and 3 deletions

View File

@ -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.

View File

@ -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);
}
/**

View File

@ -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,

View File

@ -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