diff options
author | Bastien Montagne <bastien@blender.org> | 2022-09-08 17:32:35 +0300 |
---|---|---|
committer | Bastien Montagne <bastien@blender.org> | 2022-09-08 17:34:31 +0300 |
commit | 406243c2fde7472ea39f1eb6316311aec5b72e13 (patch) | |
tree | 2f14eea889d9ad6c8eebc0c40105e98148bf0d4c /source/blender/blenkernel/intern/lib_id.c | |
parent | 462014b59b4f5ad110ebfcbc17dfa1f896582110 (diff) |
IDManagement: change `IDTypeInfo.owner_get` to instead return address of the owner_id pointer.
Also rename the callback. That way, we can keep moving toward a more
generic handling of those embedded IDs (think e.g. about copy code).
Diffstat (limited to 'source/blender/blenkernel/intern/lib_id.c')
-rw-r--r-- | source/blender/blenkernel/intern/lib_id.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/source/blender/blenkernel/intern/lib_id.c b/source/blender/blenkernel/intern/lib_id.c index cead6702080..8faa260ab8b 100644 --- a/source/blender/blenkernel/intern/lib_id.c +++ b/source/blender/blenkernel/intern/lib_id.c @@ -93,7 +93,7 @@ IDTypeInfo IDType_ID_LINK_PLACEHOLDER = { .foreach_id = NULL, .foreach_cache = NULL, .foreach_path = NULL, - .owner_get = NULL, + .owner_pointer_get = NULL, .blend_write = NULL, .blend_read_data = NULL, @@ -1968,8 +1968,11 @@ bool BKE_id_can_be_asset(const ID *id) ID *BKE_id_owner_get(ID *id) { const IDTypeInfo *idtype = BKE_idtype_get_info_from_id(id); - if (idtype->owner_get != NULL) { - return idtype->owner_get(id); + if (idtype->owner_pointer_get != NULL) { + ID **owner_id_pointer = idtype->owner_pointer_get(id); + if (owner_id_pointer != NULL) { + return *owner_id_pointer; + } } return NULL; } |