diff options
Diffstat (limited to 'source/blender/blenkernel/BKE_main_namemap.h')
-rw-r--r-- | source/blender/blenkernel/BKE_main_namemap.h | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/source/blender/blenkernel/BKE_main_namemap.h b/source/blender/blenkernel/BKE_main_namemap.h index d201e45a2c9..d6f184b4b30 100644 --- a/source/blender/blenkernel/BKE_main_namemap.h +++ b/source/blender/blenkernel/BKE_main_namemap.h @@ -46,6 +46,21 @@ bool BKE_main_namemap_get_name(struct Main *bmain, struct ID *id, char *name) AT void BKE_main_namemap_remove_name(struct Main *bmain, struct ID *id, const char *name) ATTR_NONNULL(); +/** + * Check that all ID names in given `bmain` are unique (per ID type and library), and that existing + * name maps are consistent with existing relevant IDs. + * + * This is typically called within an assert, or in tests. + */ +bool BKE_main_namemap_validate(struct Main *bmain) ATTR_NONNULL(); + +/** Same as #BKE_main_namemap_validate, but also fixes any issue by re-generating all name maps, + * and ensuring again all ID names are unique. + * + * This is typically only used in `do_versions` code to fix broken files. + */ +bool BKE_main_namemap_validate_and_fix(struct Main *bmain) ATTR_NONNULL(); + #ifdef __cplusplus } #endif |