patch_manager: Resolve implicit truncations in FormatTitleVersion()

We make it explicit that we're truncating arithmetic here to resolve
compiler warnings (even if the sizes weren't u32/u64 arithmetic
generally promotes to int :<)
This commit is contained in:
Lioncash 2020-09-14 19:19:56 -04:00
parent a4392c24cf
commit 33e4a0b6c1

View File

@ -45,14 +45,15 @@ enum class TitleVersionFormat : u8 {
std::string FormatTitleVersion(u32 version, std::string FormatTitleVersion(u32 version,
TitleVersionFormat format = TitleVersionFormat::ThreeElements) { TitleVersionFormat format = TitleVersionFormat::ThreeElements) {
std::array<u8, sizeof(u32)> bytes{}; std::array<u8, sizeof(u32)> bytes{};
bytes[0] = version % SINGLE_BYTE_MODULUS; bytes[0] = static_cast<u8>(version % SINGLE_BYTE_MODULUS);
for (std::size_t i = 1; i < bytes.size(); ++i) { for (std::size_t i = 1; i < bytes.size(); ++i) {
version /= SINGLE_BYTE_MODULUS; version /= SINGLE_BYTE_MODULUS;
bytes[i] = version % SINGLE_BYTE_MODULUS; bytes[i] = static_cast<u8>(version % SINGLE_BYTE_MODULUS);
} }
if (format == TitleVersionFormat::FourElements) if (format == TitleVersionFormat::FourElements) {
return fmt::format("v{}.{}.{}.{}", bytes[3], bytes[2], bytes[1], bytes[0]); return fmt::format("v{}.{}.{}.{}", bytes[3], bytes[2], bytes[1], bytes[0]);
}
return fmt::format("v{}.{}.{}", bytes[3], bytes[2], bytes[1]); return fmt::format("v{}.{}.{}", bytes[3], bytes[2], bytes[1]);
} }