From d2569dc3af811d5eaaab521935bd686f2f0af14c Mon Sep 17 00:00:00 2001 From: James R Date: Wed, 4 Jan 2023 18:27:22 -0800 Subject: [PATCH] Pass uint64_t literal to std::max On 32-bit system, uint64_t is typedef to unsigned long long. On 64-bit system, uint64_t is typedef to unsigned long. unsigned long and unsigned long long are distinctly separate types, which causes std::max template to fail. --- src/audio/music_player.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/audio/music_player.cpp b/src/audio/music_player.cpp index 1121518da..bb85a01de 100644 --- a/src/audio/music_player.cpp +++ b/src/audio/music_player.cpp @@ -271,7 +271,8 @@ public: gain_ = from; gain_target_ = to; // Gain samples target must always be at least 1 to avoid a div-by-zero. - gain_samples_target_ = std::max(static_cast(seconds * 44100.f), 1ULL); + gain_samples_target_ = std::max( + static_cast(seconds * 44100.f), UINT64_C(1)); // UINT64_C generates a uint64_t literal gain_samples_ = 0; }