diff options
author | Bastien Montagne <bastien@blender.org> | 2020-05-25 16:26:58 +0300 |
---|---|---|
committer | Bastien Montagne <bastien@blender.org> | 2020-05-25 16:28:15 +0300 |
commit | b01d2ea72ac17d93083cab974563b48d729faf7a (patch) | |
tree | 9f2a49b3040a4dccf7492e857d7ef0bd10111542 /source | |
parent | e0ff032711ec1a8cb85a2a9be9a6b0188d7f9db5 (diff) |
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...
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/blenkernel/BKE_lib_query.h | 2 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/lib_id.c | 4 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/lib_query.c | 1 | ||||
-rw-r--r-- | source/blender/editors/undo/memfile_undo.c | 2 |
4 files changed, 6 insertions, 3 deletions
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 |