From 319b911784f4831f78bc4d0a92961d06db348884 Mon Sep 17 00:00:00 2001 From: Jacques Lucke Date: Fri, 2 Feb 2024 19:55:06 +0100 Subject: [PATCH] Cleanup: move hash and ghash utils to C++ Also see #103343. Pull Request: https://projects.blender.org/blender/blender/pulls/117761 --- intern/ghost/test/CMakeLists.txt | 4 ++-- source/blender/blenkernel/BKE_cryptomatte.hh | 2 +- .../intern/bake_geometry_nodes_modifier.cc | 2 +- source/blender/blenkernel/intern/cryptomatte.cc | 2 +- source/blender/blenlib/BLI_ghash.h | 2 +- .../blenlib/{BLI_hash_md5.h => BLI_hash_md5.hh} | 10 +++------- .../{BLI_hash_mm2a.h => BLI_hash_mm2a.hh} | 8 -------- .../blenlib/{BLI_hash_mm3.h => BLI_hash_mm3.hh} | 8 -------- source/blender/blenlib/CMakeLists.txt | 14 +++++++------- .../{BLI_ghash_utils.c => BLI_ghash_utils.cc} | 16 ++++++++-------- source/blender/blenlib/intern/compute_context.cc | 2 +- .../blenlib/intern/{hash_md5.c => hash_md5.cc} | 9 +++++---- .../blenlib/intern/{hash_mm2a.c => hash_mm2a.cc} | 2 +- .../blenlib/intern/{hash_mm3.c => hash_mm3.cc} | 2 +- .../blender/blenlib/tests/BLI_hash_mm2a_test.cc | 2 +- .../freestyle/intern/python/BPy_FrsMaterial.cpp | 3 +-- source/blender/gpu/intern/gpu_codegen.cc | 2 +- source/blender/imbuf/intern/thumbs.cc | 2 +- source/blender/imbuf/intern/thumbs_font.cc | 2 +- .../blender/io/ply/tests/io_ply_importer_test.cc | 2 +- source/blender/makesdna/intern/CMakeLists.txt | 4 ++-- .../nodes/node_composite_cryptomatte.cc | 2 +- .../nodes/intern/geometry_nodes_lazy_function.cc | 2 +- source/blender/render/intern/render_result.cc | 2 +- 24 files changed, 43 insertions(+), 63 deletions(-) rename source/blender/blenlib/{BLI_hash_md5.h => BLI_hash_md5.hh} (92%) rename source/blender/blenlib/{BLI_hash_mm2a.h => BLI_hash_mm2a.hh} (91%) rename source/blender/blenlib/{BLI_hash_mm3.h => BLI_hash_mm3.hh} (78%) rename source/blender/blenlib/intern/{BLI_ghash_utils.c => BLI_ghash_utils.cc} (92%) rename source/blender/blenlib/intern/{hash_md5.c => hash_md5.cc} (98%) rename source/blender/blenlib/intern/{hash_mm2a.c => hash_mm2a.cc} (98%) rename source/blender/blenlib/intern/{hash_mm3.c => hash_mm3.cc} (98%) diff --git a/intern/ghost/test/CMakeLists.txt b/intern/ghost/test/CMakeLists.txt index e6896fbbaf4..26b30e6c523 100644 --- a/intern/ghost/test/CMakeLists.txt +++ b/intern/ghost/test/CMakeLists.txt @@ -182,11 +182,11 @@ add_library(bli_lib "../../../source/blender/blenlib/intern/path_util.c" "../../../source/blender/blenlib/intern/BLI_dynstr.c" "../../../source/blender/blenlib/intern/BLI_ghash.c" - "../../../source/blender/blenlib/intern/BLI_ghash_utils.c" + "../../../source/blender/blenlib/intern/BLI_ghash_utils.cc" "../../../source/blender/blenlib/intern/BLI_linklist.c" "../../../source/blender/blenlib/intern/BLI_memarena.c" "../../../source/blender/blenlib/intern/BLI_mempool.c" - "../../../source/blender/blenlib/intern/hash_mm2a.c" + "../../../source/blender/blenlib/intern/hash_mm2a.cc" "../../../source/blender/blenlib/intern/string_utils.c" "../../../source/blender/blenlib/intern/system.c" ) diff --git a/source/blender/blenkernel/BKE_cryptomatte.hh b/source/blender/blenkernel/BKE_cryptomatte.hh index c663d97f7f8..66286ac1817 100644 --- a/source/blender/blenkernel/BKE_cryptomatte.hh +++ b/source/blender/blenkernel/BKE_cryptomatte.hh @@ -14,7 +14,7 @@ #include "BKE_cryptomatte.h" -#include "BLI_hash_mm3.h" +#include "BLI_hash_mm3.hh" #include "BLI_map.hh" #include "BLI_string_ref.hh" diff --git a/source/blender/blenkernel/intern/bake_geometry_nodes_modifier.cc b/source/blender/blenkernel/intern/bake_geometry_nodes_modifier.cc index 91a4f59af0e..c2c17b1ea28 100644 --- a/source/blender/blenkernel/intern/bake_geometry_nodes_modifier.cc +++ b/source/blender/blenkernel/intern/bake_geometry_nodes_modifier.cc @@ -15,7 +15,7 @@ #include "BLI_binary_search.hh" #include "BLI_fileops.hh" -#include "BLI_hash_md5.h" +#include "BLI_hash_md5.hh" #include "BLI_path_util.h" #include "BLI_string.h" #include "BLI_string_utils.hh" diff --git a/source/blender/blenkernel/intern/cryptomatte.cc b/source/blender/blenkernel/intern/cryptomatte.cc index e6af3956c9b..a8d7e97cc2f 100644 --- a/source/blender/blenkernel/intern/cryptomatte.cc +++ b/source/blender/blenkernel/intern/cryptomatte.cc @@ -19,7 +19,7 @@ #include "BLI_compiler_attrs.h" #include "BLI_dynstr.h" -#include "BLI_hash_mm3.h" +#include "BLI_hash_mm3.hh" #include "BLI_listbase.h" #include "BLI_string.h" diff --git a/source/blender/blenlib/BLI_ghash.h b/source/blender/blenlib/BLI_ghash.h index 58504c1038f..983b18efadc 100644 --- a/source/blender/blenlib/BLI_ghash.h +++ b/source/blender/blenlib/BLI_ghash.h @@ -548,7 +548,7 @@ double BLI_gset_calc_quality(GSet *gs); /* -------------------------------------------------------------------- */ /** \name GHash/GSet Utils * - * Defined in `BLI_ghash_utils.c` + * Defined in `BLI_ghash_utils.cc` * \{ */ /** diff --git a/source/blender/blenlib/BLI_hash_md5.h b/source/blender/blenlib/BLI_hash_md5.hh similarity index 92% rename from source/blender/blenlib/BLI_hash_md5.h rename to source/blender/blenlib/BLI_hash_md5.hh index 01b5eadffcf..ee4e0f9d7ca 100644 --- a/source/blender/blenlib/BLI_hash_md5.h +++ b/source/blender/blenlib/BLI_hash_md5.hh @@ -8,9 +8,9 @@ * \ingroup bli */ -#ifdef __cplusplus -extern "C" { -#endif +#include + +#include "BLI_sys_types.h" /** * Compute MD5 message digest for 'len' bytes beginning at 'buffer'. @@ -27,7 +27,3 @@ void *BLI_hash_md5_buffer(const char *buffer, size_t len, void *resblock); int BLI_hash_md5_stream(FILE *stream, void *resblock); char *BLI_hash_md5_to_hexdigest(const void *resblock, char r_hex_digest[33]); - -#ifdef __cplusplus -} -#endif diff --git a/source/blender/blenlib/BLI_hash_mm2a.h b/source/blender/blenlib/BLI_hash_mm2a.hh similarity index 91% rename from source/blender/blenlib/BLI_hash_mm2a.h rename to source/blender/blenlib/BLI_hash_mm2a.hh index 4007fe6c462..a9fcfa6768f 100644 --- a/source/blender/blenlib/BLI_hash_mm2a.h +++ b/source/blender/blenlib/BLI_hash_mm2a.hh @@ -10,10 +10,6 @@ #include "BLI_sys_types.h" -#ifdef __cplusplus -extern "C" { -#endif - typedef struct BLI_HashMurmur2A { uint32_t hash; uint32_t tail; @@ -33,7 +29,3 @@ uint32_t BLI_hash_mm2a_end(BLI_HashMurmur2A *mm2); * Non-incremental version, quicker for small keys. */ uint32_t BLI_hash_mm2(const unsigned char *data, size_t len, uint32_t seed); - -#ifdef __cplusplus -} -#endif diff --git a/source/blender/blenlib/BLI_hash_mm3.h b/source/blender/blenlib/BLI_hash_mm3.hh similarity index 78% rename from source/blender/blenlib/BLI_hash_mm3.h rename to source/blender/blenlib/BLI_hash_mm3.hh index 6d3c3d2ac7f..f614adab560 100644 --- a/source/blender/blenlib/BLI_hash_mm3.h +++ b/source/blender/blenlib/BLI_hash_mm3.hh @@ -10,12 +10,4 @@ #include "BLI_sys_types.h" -#ifdef __cplusplus -extern "C" { -#endif - uint32_t BLI_hash_mm3(const unsigned char *data, size_t len, uint32_t seed); - -#ifdef __cplusplus -} -#endif diff --git a/source/blender/blenlib/CMakeLists.txt b/source/blender/blenlib/CMakeLists.txt index b01224442d0..8bca0c73efa 100644 --- a/source/blender/blenlib/CMakeLists.txt +++ b/source/blender/blenlib/CMakeLists.txt @@ -29,7 +29,7 @@ set(SRC intern/BLI_dynstr.c intern/BLI_filelist.cc intern/BLI_ghash.c - intern/BLI_ghash_utils.c + intern/BLI_ghash_utils.cc intern/BLI_heap.c intern/BLI_heap_simple.c intern/BLI_index_range.cc @@ -77,9 +77,9 @@ set(SRC intern/generic_virtual_array.cc intern/generic_virtual_vector_array.cc intern/gsqueue.c - intern/hash_md5.c - intern/hash_mm2a.c - intern/hash_mm3.c + intern/hash_md5.cc + intern/hash_mm2a.cc + intern/hash_mm3.cc intern/hash_tables.cc intern/implicit_sharing.cc intern/index_mask.cc @@ -242,9 +242,9 @@ set(SRC BLI_gsqueue.h BLI_hash.h BLI_hash.hh - BLI_hash_md5.h - BLI_hash_mm2a.h - BLI_hash_mm3.h + BLI_hash_md5.hh + BLI_hash_mm2a.hh + BLI_hash_mm3.hh BLI_hash_tables.hh BLI_heap.h BLI_heap_simple.h diff --git a/source/blender/blenlib/intern/BLI_ghash_utils.c b/source/blender/blenlib/intern/BLI_ghash_utils.cc similarity index 92% rename from source/blender/blenlib/intern/BLI_ghash_utils.c rename to source/blender/blenlib/intern/BLI_ghash_utils.cc index 30886870dcc..3d4ce192b46 100644 --- a/source/blender/blenlib/intern/BLI_ghash_utils.c +++ b/source/blender/blenlib/intern/BLI_ghash_utils.cc @@ -14,7 +14,7 @@ #include "MEM_guardedalloc.h" #include "BLI_ghash.h" /* own include */ -#include "BLI_hash_mm2a.h" +#include "BLI_hash_mm2a.hh" #include "BLI_utildefines.h" /* keep last */ @@ -136,7 +136,7 @@ uint BLI_ghashutil_strhash_p(const void *ptr) const signed char *p; uint h = 5381; - for (p = ptr; *p != '\0'; p++) { + for (p = static_cast(ptr); *p != '\0'; p++) { h = (uint)((h << 5) + h) + (uint)*p; } @@ -144,18 +144,18 @@ uint BLI_ghashutil_strhash_p(const void *ptr) } uint BLI_ghashutil_strhash_p_murmur(const void *ptr) { - const uchar *key = ptr; + const uchar *key = static_cast(ptr); return BLI_hash_mm2(key, strlen((const char *)key) + 1, 0); } bool BLI_ghashutil_strcmp(const void *a, const void *b) { - return (a == b) ? false : !STREQ(a, b); + return (a == b) ? false : !STREQ(static_cast(a), static_cast(b)); } GHashPair *BLI_ghashutil_pairalloc(const void *first, const void *second) { - GHashPair *pair = MEM_mallocN(sizeof(GHashPair), "GHashPair"); + GHashPair *pair = static_cast(MEM_mallocN(sizeof(GHashPair), "GHashPair")); pair->first = first; pair->second = second; return pair; @@ -163,15 +163,15 @@ GHashPair *BLI_ghashutil_pairalloc(const void *first, const void *second) uint BLI_ghashutil_pairhash(const void *ptr) { - const GHashPair *pair = ptr; + const GHashPair *pair = static_cast(ptr); uint hash = BLI_ghashutil_ptrhash(pair->first); return hash ^ BLI_ghashutil_ptrhash(pair->second); } bool BLI_ghashutil_paircmp(const void *a, const void *b) { - const GHashPair *A = a; - const GHashPair *B = b; + const GHashPair *A = static_cast(a); + const GHashPair *B = static_cast(b); return ((A->first != B->first) || (A->second != B->second)); } diff --git a/source/blender/blenlib/intern/compute_context.cc b/source/blender/blenlib/intern/compute_context.cc index e9cfac36ba3..5ad562d1e21 100644 --- a/source/blender/blenlib/intern/compute_context.cc +++ b/source/blender/blenlib/intern/compute_context.cc @@ -3,7 +3,7 @@ * SPDX-License-Identifier: GPL-2.0-or-later */ #include "BLI_compute_context.hh" -#include "BLI_hash_md5.h" +#include "BLI_hash_md5.hh" #include namespace blender { diff --git a/source/blender/blenlib/intern/hash_md5.c b/source/blender/blenlib/intern/hash_md5.cc similarity index 98% rename from source/blender/blenlib/intern/hash_md5.c rename to source/blender/blenlib/intern/hash_md5.cc index cb745eeb41b..1a1e276ba56 100644 --- a/source/blender/blenlib/intern/hash_md5.c +++ b/source/blender/blenlib/intern/hash_md5.cc @@ -15,7 +15,7 @@ #include #include -#include "BLI_hash_md5.h" /* own include */ +#include "BLI_hash_md5.hh" /* own include */ #if defined HAVE_LIMITS_H || defined _LIBC # include @@ -114,7 +114,7 @@ static void md5_process_block(const void *buffer, size_t len, struct md5_ctx *ct #define CYCLIC(w, s) (w = (w << s) | (w >> (32 - s))) md5_uint32 correct_words[16]; - const md5_uint32 *words = buffer; + const md5_uint32 *words = static_cast(buffer); size_t nwords = len / sizeof(md5_uint32); const md5_uint32 *endp = words + nwords; md5_uint32 A = ctx->A; @@ -259,7 +259,7 @@ static void md5_process_block(const void *buffer, size_t len, struct md5_ctx *ct */ static void *md5_read_ctx(const struct md5_ctx *ctx, void *resbuf) { - md5_uint32 *digest = resbuf; + md5_uint32 *digest = static_cast(resbuf); digest[0] = SWAP(ctx->A); digest[1] = SWAP(ctx->B); digest[2] = SWAP(ctx->C); @@ -268,7 +268,8 @@ static void *md5_read_ctx(const struct md5_ctx *ctx, void *resbuf) return resbuf; } -/* Top level public functions. */ +/* +Top level public functions. */ int BLI_hash_md5_stream(FILE *stream, void *resblock) { diff --git a/source/blender/blenlib/intern/hash_mm2a.c b/source/blender/blenlib/intern/hash_mm2a.cc similarity index 98% rename from source/blender/blenlib/intern/hash_mm2a.c rename to source/blender/blenlib/intern/hash_mm2a.cc index eeeccba43cc..9af4b60c690 100644 --- a/source/blender/blenlib/intern/hash_mm2a.c +++ b/source/blender/blenlib/intern/hash_mm2a.cc @@ -20,7 +20,7 @@ #include "BLI_compiler_attrs.h" -#include "BLI_hash_mm2a.h" /* own include */ +#include "BLI_hash_mm2a.hh" /* own include */ /* Helpers. */ #define MM2A_M 0x5bd1e995 diff --git a/source/blender/blenlib/intern/hash_mm3.c b/source/blender/blenlib/intern/hash_mm3.cc similarity index 98% rename from source/blender/blenlib/intern/hash_mm3.c rename to source/blender/blenlib/intern/hash_mm3.cc index 9fea376a888..a900a00084b 100644 --- a/source/blender/blenlib/intern/hash_mm3.c +++ b/source/blender/blenlib/intern/hash_mm3.cc @@ -15,7 +15,7 @@ #include "BLI_compiler_attrs.h" #include "BLI_compiler_compat.h" -#include "BLI_hash_mm3.h" /* own include */ +#include "BLI_hash_mm3.hh" /* own include */ #if defined(_MSC_VER) # include diff --git a/source/blender/blenlib/tests/BLI_hash_mm2a_test.cc b/source/blender/blenlib/tests/BLI_hash_mm2a_test.cc index bb0d0846f09..bfa8b90642e 100644 --- a/source/blender/blenlib/tests/BLI_hash_mm2a_test.cc +++ b/source/blender/blenlib/tests/BLI_hash_mm2a_test.cc @@ -4,7 +4,7 @@ #include "testing/testing.h" -#include "BLI_hash_mm2a.h" +#include "BLI_hash_mm2a.hh" /* NOTE: Reference results are taken from reference implementation * (cpp code, CMurmurHash2A variant): diff --git a/source/blender/freestyle/intern/python/BPy_FrsMaterial.cpp b/source/blender/freestyle/intern/python/BPy_FrsMaterial.cpp index 2c24f5a8422..5b70a3c0c4c 100644 --- a/source/blender/freestyle/intern/python/BPy_FrsMaterial.cpp +++ b/source/blender/freestyle/intern/python/BPy_FrsMaterial.cpp @@ -10,14 +10,13 @@ #include "BPy_Convert.h" +#include "BLI_hash_mm2a.hh" #include "BLI_math_vector.h" #ifdef __cplusplus extern "C" { #endif -#include "BLI_hash_mm2a.h" - using namespace Freestyle; /////////////////////////////////////////////////////////////////////////////////////////// diff --git a/source/blender/gpu/intern/gpu_codegen.cc b/source/blender/gpu/intern/gpu_codegen.cc index 258820033f2..0e386888ac0 100644 --- a/source/blender/gpu/intern/gpu_codegen.cc +++ b/source/blender/gpu/intern/gpu_codegen.cc @@ -15,7 +15,7 @@ #include "DNA_material_types.h" #include "BLI_ghash.h" -#include "BLI_hash_mm2a.h" +#include "BLI_hash_mm2a.hh" #include "BLI_link_utils.h" #include "BLI_listbase.h" #include "BLI_string.h" diff --git a/source/blender/imbuf/intern/thumbs.cc b/source/blender/imbuf/intern/thumbs.cc index db9bbafcc89..20c73d9578d 100644 --- a/source/blender/imbuf/intern/thumbs.cc +++ b/source/blender/imbuf/intern/thumbs.cc @@ -16,7 +16,7 @@ #include "BLI_fileops.h" #include "BLI_ghash.h" -#include "BLI_hash_md5.h" +#include "BLI_hash_md5.hh" #include "BLI_path_util.h" #include "BLI_string.h" #include "BLI_string_utils.hh" diff --git a/source/blender/imbuf/intern/thumbs_font.cc b/source/blender/imbuf/intern/thumbs_font.cc index 62aa4e373e9..b0cf587fdcc 100644 --- a/source/blender/imbuf/intern/thumbs_font.cc +++ b/source/blender/imbuf/intern/thumbs_font.cc @@ -7,7 +7,7 @@ */ #include "BLI_fileops.h" -#include "BLI_hash_md5.h" +#include "BLI_hash_md5.hh" #include "BLI_utildefines.h" #include "IMB_imbuf.hh" diff --git a/source/blender/io/ply/tests/io_ply_importer_test.cc b/source/blender/io/ply/tests/io_ply_importer_test.cc index ceba5c19225..aafd3c765b3 100644 --- a/source/blender/io/ply/tests/io_ply_importer_test.cc +++ b/source/blender/io/ply/tests/io_ply_importer_test.cc @@ -5,7 +5,7 @@ #include "testing/testing.h" #include "BLI_fileops.hh" -#include "BLI_hash_mm2a.h" +#include "BLI_hash_mm2a.hh" #include "ply_import.hh" #include "ply_import_buffer.hh" diff --git a/source/blender/makesdna/intern/CMakeLists.txt b/source/blender/makesdna/intern/CMakeLists.txt index 7fe53d2f044..3844f3a7b7b 100644 --- a/source/blender/makesdna/intern/CMakeLists.txt +++ b/source/blender/makesdna/intern/CMakeLists.txt @@ -48,7 +48,7 @@ file(GENERATE OUTPUT ${dna_header_string_file} CONTENT "${DNA_FILE_LIST}") set(SRC_BLENLIB ../../blenlib/intern/BLI_assert.c ../../blenlib/intern/BLI_ghash.c - ../../blenlib/intern/BLI_ghash_utils.c + ../../blenlib/intern/BLI_ghash_utils.cc ../../blenlib/intern/BLI_linklist.c ../../blenlib/intern/BLI_memarena.c ../../blenlib/intern/BLI_mempool.c @@ -57,7 +57,7 @@ set(SRC_BLENLIB ../../blenlib/intern/string.c # Dependency of BLI_ghash.c - ../../blenlib/intern/hash_mm2a.c + ../../blenlib/intern/hash_mm2a.cc # Dependencies of BLI_mempool.c when ASAN is enabled. ../../blenlib/intern/gsqueue.c diff --git a/source/blender/nodes/composite/nodes/node_composite_cryptomatte.cc b/source/blender/nodes/composite/nodes/node_composite_cryptomatte.cc index cbc13bf9fc6..baf8926e6a4 100644 --- a/source/blender/nodes/composite/nodes/node_composite_cryptomatte.cc +++ b/source/blender/nodes/composite/nodes/node_composite_cryptomatte.cc @@ -12,7 +12,7 @@ #include "BLI_assert.h" #include "BLI_dynstr.h" -#include "BLI_hash_mm3.h" +#include "BLI_hash_mm3.hh" #include "BLI_listbase.h" #include "BLI_math_vector.h" #include "BLI_math_vector_types.hh" diff --git a/source/blender/nodes/intern/geometry_nodes_lazy_function.cc b/source/blender/nodes/intern/geometry_nodes_lazy_function.cc index 9cc59902597..6a84cd76117 100644 --- a/source/blender/nodes/intern/geometry_nodes_lazy_function.cc +++ b/source/blender/nodes/intern/geometry_nodes_lazy_function.cc @@ -31,7 +31,7 @@ #include "BLI_cpp_types.hh" #include "BLI_dot_export.hh" #include "BLI_hash.h" -#include "BLI_hash_md5.h" +#include "BLI_hash_md5.hh" #include "BLI_lazy_threading.hh" #include "BLI_map.hh" diff --git a/source/blender/render/intern/render_result.cc b/source/blender/render/intern/render_result.cc index 615874fde23..c9fb2a5ef84 100644 --- a/source/blender/render/intern/render_result.cc +++ b/source/blender/render/intern/render_result.cc @@ -14,7 +14,7 @@ #include "MEM_guardedalloc.h" #include "BLI_ghash.h" -#include "BLI_hash_md5.h" +#include "BLI_hash_md5.hh" #include "BLI_implicit_sharing.hh" #include "BLI_listbase.h" #include "BLI_path_util.h"