From 6b6e6a2cd18312637a899fbfd4462f6d69aecf3e Mon Sep 17 00:00:00 2001 From: Bastien Montagne Date: Tue, 25 Feb 2025 20:53:42 +0100 Subject: [PATCH] Fix (unreported) invalid crash in debug, disabled-by-default code. Code printing memory usage of Main ID namemaps could try to run on nullptr. --- .../blender/blenkernel/intern/main_namemap.cc | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/source/blender/blenkernel/intern/main_namemap.cc b/source/blender/blenkernel/intern/main_namemap.cc index f4a3a9cf06b..f10080e82a9 100644 --- a/source/blender/blenkernel/intern/main_namemap.cc +++ b/source/blender/blenkernel/intern/main_namemap.cc @@ -185,14 +185,17 @@ UniqueName_Map *BKE_main_namemap_create() void BKE_main_namemap_destroy(UniqueName_Map **r_name_map) { #ifdef DEBUG_PRINT_MEMORY_USAGE - int64_t size_sets = 0; - int64_t size_maps = 0; - for (const UniqueName_TypeMap &type_map : (*r_name_map)->type_maps) { - size_sets += type_map.full_names.size_in_bytes(); - size_maps += type_map.base_name_to_num_suffix.size_in_bytes(); + if (*r_name_map) { + int64_t size_sets = 0; + int64_t size_maps = 0; + for (const UniqueName_TypeMap &type_map : (*r_name_map)->type_maps) { + size_sets += type_map.full_names.size_in_bytes(); + size_maps += type_map.base_name_to_num_suffix.size_in_bytes(); + } + printf("NameMap memory usage: sets %.1fKB, maps %.1fKB\n", + size_sets / 1024.0, + size_maps / 1024.0); } - printf( - "NameMap memory usage: sets %.1fKB, maps %.1fKB\n", size_sets / 1024.0, size_maps / 1024.0); #endif MEM_delete(*r_name_map); *r_name_map = nullptr;