memory hash workaround

This commit is contained in:
MaidOpi
2026-05-11 13:32:11 +08:00
parent fb9966e61a
commit 02677596a1
2 changed files with 19 additions and 0 deletions
+1
View File
@@ -85,6 +85,7 @@ add_library(leanclr_godot SHARED
src/leanclr_script_language.cpp src/leanclr_script_language.cpp
src/leanclr_script_loader.cpp src/leanclr_script_loader.cpp
src/leanclr_script_saver.cpp src/leanclr_script_saver.cpp
src/leanclr_wasm_libcxx_shim.cpp
src/register_types.cpp src/register_types.cpp
) )
+18
View File
@@ -0,0 +1,18 @@
#include <cstddef>
#if defined(__EMSCRIPTEN__)
extern "C" std::size_t leanclr_godot_libcxx_hash_memory(const void* p_data, std::size_t p_size) noexcept
__asm__("_ZNSt3__213__hash_memoryEPKvm");
extern "C" std::size_t leanclr_godot_libcxx_hash_memory(const void* p_data, std::size_t p_size) noexcept
{
const unsigned char* bytes = static_cast<const unsigned char*>(p_data);
std::size_t hash = 1469598103934665603ull;
for (std::size_t i = 0; i < p_size; ++i)
{
hash ^= bytes[i];
hash *= 1099511628211ull;
}
return hash;
}
#endif