diff options
author | Bastien Montagne <b.mont29@gmail.com> | 2020-02-13 14:56:10 +0300 |
---|---|---|
committer | Bastien Montagne <b.mont29@gmail.com> | 2020-02-13 18:23:42 +0300 |
commit | f28bb6992fa9773fb1e7918d569f4c88427f4c96 (patch) | |
tree | e69240c9ab26ba00bf4ca1f54636e4e837b8f465 /source/blender/depsgraph/intern/eval | |
parent | 0d750d7c064bbb1e1fb5fe2ae14a8496863a890b (diff) |
Refactor libquery ID looper callback to take a single parameter.
Using a struct here allows to change given parameters to the callbacks
without having to edit all callbacks functions, which is always noisy
and time consuming.
Diffstat (limited to 'source/blender/depsgraph/intern/eval')
-rw-r--r-- | source/blender/depsgraph/intern/eval/deg_eval_copy_on_write.cc | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/source/blender/depsgraph/intern/eval/deg_eval_copy_on_write.cc b/source/blender/depsgraph/intern/eval/deg_eval_copy_on_write.cc index c2222bfcbce..edb02ee331f 100644 --- a/source/blender/depsgraph/intern/eval/deg_eval_copy_on_write.cc +++ b/source/blender/depsgraph/intern/eval/deg_eval_copy_on_write.cc @@ -513,12 +513,15 @@ struct RemapCallbackUserData { bool create_placeholders; }; -int foreach_libblock_remap_callback(void *user_data_v, ID *id_self, ID **id_p, int /*cb_flag*/) +int foreach_libblock_remap_callback(LibraryIDLinkCallbackData *cb_data) { + ID **id_p = cb_data->id_pointer; if (*id_p == nullptr) { return IDWALK_RET_NOP; } - RemapCallbackUserData *user_data = (RemapCallbackUserData *)user_data_v; + + ID *id_self = cb_data->id_self; + RemapCallbackUserData *user_data = (RemapCallbackUserData *)cb_data->user_data; const Depsgraph *depsgraph = user_data->depsgraph; ID *id_orig = *id_p; if (deg_copy_on_write_is_needed(id_orig)) { @@ -813,12 +816,11 @@ void update_id_after_copy(const Depsgraph *depsgraph, /* This callback is used to validate that all nested ID data-blocks are * properly expanded. */ -int foreach_libblock_validate_callback(void *user_data, - ID * /*id_self*/, - ID **id_p, - int /*cb_flag*/) +int foreach_libblock_validate_callback(LibraryIDLinkCallbackData *cb_data) { - ValidateData *data = (ValidateData *)user_data; + ValidateData *data = (ValidateData *)cb_data->user_data; + ID **id_p = cb_data->id_pointer; + if (*id_p != nullptr) { if (!check_datablock_expanded(*id_p)) { data->is_valid = false; |