fix(unicode): numeric_limits does not provide maximum pointer value, use UINTPTR_MAX instead

This commit is contained in:
phaneron 2025-03-30 18:54:17 -04:00
parent 9b4a1ce0ae
commit ba15fd914f

View file

@ -62,7 +62,7 @@ static const uint8_t bytesFromUTF8[] = {
};
int32_t ConvertUTF16to8(uint8_t* dst, uint32_t dstmaxchars, const uint16_t* src, uint32_t srcmaxchars, uint32_t* dstchars, uint32_t* srcchars) {
auto srcend = srcmaxchars & 0x80000000 ? std::numeric_limits<const uint16_t*>::max() : &src[srcmaxchars];
auto srcend = srcmaxchars & 0x80000000 ? reinterpret_cast<const uint16_t*>(UINTPTR_MAX) : &src[srcmaxchars];
auto dstend = &dst[dstmaxchars];
auto dststart = dst;
auto srcstart = src;
@ -156,7 +156,7 @@ done:
}
int32_t ConvertUTF8to16(uint16_t* dst, uint32_t dstmaxchars, const uint8_t* src, uint32_t srcmaxchars, uint32_t* dstchars, uint32_t* srcchars) {
auto srcend = srcmaxchars & 0x80000000 ? std::numeric_limits<const uint8_t*>::max() : src + srcmaxchars;
auto srcend = srcmaxchars & 0x80000000 ? reinterpret_cast<const uint8_t*>(UINTPTR_MAX) : src + srcmaxchars;
auto dstend = dst + dstmaxchars;
auto dststart = dst;
auto srcstart = src;