diff --git a/modules/juce_core/containers/juce_HashMap.h b/modules/juce_core/containers/juce_HashMap.h index e44a182493..019e5b41d5 100644 --- a/modules/juce_core/containers/juce_HashMap.h +++ b/modules/juce_core/containers/juce_HashMap.h @@ -31,16 +31,20 @@ */ struct DefaultHashFunctions { + /** Generates a simple hash from an unsigned int. */ + static int generateHash (uint32 key, int upperLimit) noexcept { return (int) (key % (uint32) upperLimit); } /** Generates a simple hash from an integer. */ - int generateHash (const int key, const int upperLimit) const noexcept { return std::abs (key) % upperLimit; } + static int generateHash (int32 key, int upperLimit) noexcept { return generateHash ((uint32) key, upperLimit); } + /** Generates a simple hash from a uint64. */ + static int generateHash (uint64 key, int upperLimit) noexcept { return (int) (key % (uint64) upperLimit); } /** Generates a simple hash from an int64. */ - int generateHash (const int64 key, const int upperLimit) const noexcept { return std::abs ((int) key) % upperLimit; } + static int generateHash (int64 key, int upperLimit) noexcept { return generateHash ((uint64) key, upperLimit); } /** Generates a simple hash from a string. */ - int generateHash (const String& key, const int upperLimit) const noexcept { return (int) (((uint32) key.hashCode()) % (uint32) upperLimit); } + static int generateHash (const String& key, int upperLimit) noexcept { return generateHash ((uint32) key.hashCode(), upperLimit); } /** Generates a simple hash from a variant. */ - int generateHash (const var& key, const int upperLimit) const noexcept { return generateHash (key.toString(), upperLimit); } + static int generateHash (const var& key, int upperLimit) noexcept { return generateHash (key.toString(), upperLimit); } /** Generates a simple hash from a void ptr. */ - int generateHash (const void* key, const int upperLimit) const noexcept { return (int)(((pointer_sized_uint) key) % ((pointer_sized_uint) upperLimit)); } + static int generateHash (const void* key, int upperLimit) noexcept { return generateHash ((pointer_sized_uint) key, upperLimit); } };