diff options
author | Hans Goudey <h.goudey@me.com> | 2022-05-31 15:44:34 +0300 |
---|---|---|
committer | Hans Goudey <h.goudey@me.com> | 2022-05-31 15:44:34 +0300 |
commit | 9e6ff34f33b183de00210aca7ff4f397a77f3abe (patch) | |
tree | d86365c83bf19d2537a46aea1f75e764686b7da1 | |
parent | 69fd9dca672bc6873470d76f394e22f9c1554313 (diff) |
Add C++ mockupcleanup-id-override-const
-rw-r--r-- | source/blender/blenkernel/intern/lib_override.c | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/source/blender/blenkernel/intern/lib_override.c b/source/blender/blenkernel/intern/lib_override.c index 38577a980a5..46e761ee2bd 100644 --- a/source/blender/blenkernel/intern/lib_override.c +++ b/source/blender/blenkernel/intern/lib_override.c @@ -88,7 +88,9 @@ BLI_INLINE void lib_override_object_posemode_transfer(ID *id_dst, ID *id_src) } /** Get override data for a given ID. Needed because of our beloved shape keys snowflake. */ -BLI_INLINE IDOverrideLibrary *lib_override_get(Main *bmain, ID *id, ID **r_owner_id) +BLI_INLINE const IDOverrideLibrary *lib_override_get(const Main *bmain, + const ID *id, + const ID **r_owner_id) { if (r_owner_id != NULL) { *r_owner_id = id; @@ -107,6 +109,12 @@ BLI_INLINE IDOverrideLibrary *lib_override_get(Main *bmain, ID *id, ID **r_owner return id->override_library; } +BLI_INLINE IDOverrideLibrary *lib_override_get(Main *bmain, ID *id, ID **r_owner_id) +{ + return const_cast<IDOverrideLibrary *>( + lib_override_get(bmain, id, const_cast<ID **>(r_owner_id))); +} + IDOverrideLibrary *BKE_lib_override_library_init(ID *local_id, ID *reference_id) { /* If reference_id is NULL, we are creating an override template for purely local data. @@ -298,9 +306,9 @@ bool BKE_lib_override_library_is_system_defined(const Main *bmain, const ID *id) { if (ID_IS_OVERRIDE_LIBRARY(id)) { - ID *override_owner_id; + const ID *override_owner_id; /* Cast away const, since the data is not changed. */ - lib_override_get((Main *)bmain, (ID *)id, &override_owner_id); + lib_override_get(bmain, id, &override_owner_id); return (override_owner_id->override_library->flag & IDOVERRIDE_LIBRARY_FLAG_SYSTEM_DEFINED) != 0; } @@ -950,8 +958,8 @@ static void lib_override_overrides_group_tag_recursive(LibOverrideGroupTagData * continue; } - Library *reference_lib = lib_override_get(bmain, id_owner, NULL)->reference->lib; - ID *to_id_reference = lib_override_get(bmain, to_id, NULL)->reference; + const Library *reference_lib = lib_override_get(bmain, id_owner, NULL)->reference->lib; + const ID *to_id_reference = lib_override_get(bmain, to_id, NULL)->reference; if (to_id_reference->lib != reference_lib) { /* We do not override data-blocks from other libraries, nor do we process them. */ continue; @@ -1274,7 +1282,7 @@ static ID *lib_override_root_find(Main *bmain, ID *id, const int curr_level, int } BLI_assert(id->flag & LIB_EMBEDDED_DATA_LIB_OVERRIDE); - ID *id_owner; + const ID *id_owner; int best_level_placeholder = 0; lib_override_get(bmain, id, &id_owner); return lib_override_root_find(bmain, id_owner, curr_level + 1, &best_level_placeholder); |