Commit a76c0b82 authored by Iain Ireland's avatar Iain Ireland Committed by Pier Angelo Vendrame
Browse files

Bug 2027276: Use size_t when inflating UTF8 r=spidermonkey-reviewers,sfink

parent 0e630806
Loading
Loading
Loading
Loading
+7 −5
Original line number Diff line number Diff line
@@ -228,9 +228,11 @@ char32_t JS::Utf8ToOneUcs4Char(const uint8_t* utf8Buffer, int utf8Length) {
  return Utf8ToOneUcs4CharImpl(utf8Buffer, utf8Length);
}

static void ReportInvalidCharacter(JSContext* cx, uint32_t offset) {
  char buffer[10];
  SprintfLiteral(buffer, "%u", offset);
static void ReportInvalidCharacter(JSContext* cx, size_t offset) {
  // Max roundtrip digits, +1 to include largest numbers, +1 for null terminator
  constexpr size_t BUFFER_LENGTH = std::numeric_limits<size_t>::digits10 + 2;
  char buffer[BUFFER_LENGTH];
  SprintfLiteral(buffer, "%zu", offset);
  JS_ReportErrorNumberASCII(cx, GetErrorMessage, nullptr,
                            JSMSG_MALFORMED_UTF8_CHAR, buffer);
}
@@ -278,7 +280,7 @@ template <OnUTF8Error ErrorAction, typename OutputFn>
static bool InflateUTF8ToUTF16(JSContext* cx, const UTF8Chars& src,
                               OutputFn dst) {
  size_t srclen = src.length();
  for (uint32_t i = 0; i < srclen; i++) {
  for (size_t i = 0; i < srclen; i++) {
    uint32_t v = uint32_t(src[i]);
    if (!(v & 0x80)) {
      // ASCII code unit.  Simple copy.
@@ -400,7 +402,7 @@ static void CopyAndInflateUTF8IntoBuffer(JSContext* cx, const UTF8Chars& src,
  if (allASCII) {
    size_t srclen = src.length();
    MOZ_ASSERT(outlen == srclen);
    for (uint32_t i = 0; i < srclen; i++) {
    for (size_t i = 0; i < srclen; i++) {
      dst[i] = CharT(src[i]);
    }
  } else {