Use unsigned size arguments when constructing spans

Newer versions of base::span is more strict about the signness of the
span's size. Switch to unsigned constants and add casts/checks as
needed for variables.

Bug: pdfium:2085
Change-Id: I4077f69826a89a443093695627ad82819ae3b4aa
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/112534
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
diff --git a/core/fdrm/fx_crypt_unittest.cpp b/core/fdrm/fx_crypt_unittest.cpp
index f9dd66d..35eed47 100644
--- a/core/fdrm/fx_crypt_unittest.cpp
+++ b/core/fdrm/fx_crypt_unittest.cpp
@@ -56,7 +56,7 @@
 
 TEST(FXCRYPT, MD5GenerateOneByteData) {
   uint8_t digest[16];
-  CRYPT_MD5Generate(pdfium::as_bytes(pdfium::make_span("a", 1)), digest);
+  CRYPT_MD5Generate(pdfium::as_bytes(pdfium::make_span("a", 1u)), digest);
 
   static constexpr uint8_t kExpected[] = {0x0c, 0xc1, 0x75, 0xb9, 0xc0, 0xf1,
                                           0xb6, 0xa8, 0x31, 0xc3, 0x99, 0xe2,
@@ -181,7 +181,7 @@
 
 TEST(FXCRYPT, ContextWithStringData) {
   CRYPT_md5_context ctx = CRYPT_MD5Start();
-  CRYPT_MD5Update(&ctx, pdfium::as_bytes(pdfium::make_span("abc", 3)));
+  CRYPT_MD5Update(&ctx, pdfium::as_bytes(pdfium::make_span("abc", 3u)));
 
   uint8_t digest[16];
   CRYPT_MD5Finish(&ctx, digest);
diff --git a/core/fpdfapi/font/cpdf_cidfont.cpp b/core/fpdfapi/font/cpdf_cidfont.cpp
index 7d2d549..7f23f97 100644
--- a/core/fpdfapi/font/cpdf_cidfont.cpp
+++ b/core/fpdfapi/font/cpdf_cidfont.cpp
@@ -340,7 +340,7 @@
   size_t ret = FX_MultiByteToWideChar(
       kCharsetCodePages[static_cast<size_t>(m_pCMap->GetCoding())],
       ByteStringView(reinterpret_cast<const char*>(&charcode), charsize),
-      pdfium::make_span(&unicode, 1));
+      pdfium::make_span(&unicode, 1u));
   return ret == 1 ? unicode : 0;
 #else
   if (!m_pCMap->GetEmbedMap())
@@ -387,7 +387,7 @@
   size_t ret = FX_WideCharToMultiByte(
       kCharsetCodePages[static_cast<size_t>(m_pCMap->GetCoding())],
       WideStringView(&unicode, 1),
-      pdfium::make_span(reinterpret_cast<char*>(buffer), 4));
+      pdfium::make_span(reinterpret_cast<char*>(buffer), 4u));
   if (ret == 1)
     return buffer[0];
   if (ret == 2)
diff --git a/core/fpdfapi/page/cpdf_meshstream.cpp b/core/fpdfapi/page/cpdf_meshstream.cpp
index 6a0419e..13fa8fc 100644
--- a/core/fpdfapi/page/cpdf_meshstream.cpp
+++ b/core/fpdfapi/page/cpdf_meshstream.cpp
@@ -221,7 +221,7 @@
   float result[kMaxComponents] = {};
   for (const auto& func : m_funcs) {
     if (func && func->CountOutputs() <= kMaxComponents)
-      func->Call(pdfium::make_span(color_value, 1), result);
+      func->Call(pdfium::make_span(color_value, 1u), result);
   }
 
   m_pCS->GetRGB(result, &r, &g, &b);
diff --git a/core/fpdfapi/page/cpdf_stitchfunc.cpp b/core/fpdfapi/page/cpdf_stitchfunc.cpp
index f522bc3..0c3ebd6 100644
--- a/core/fpdfapi/page/cpdf_stitchfunc.cpp
+++ b/core/fpdfapi/page/cpdf_stitchfunc.cpp
@@ -117,6 +117,6 @@
   input = Interpolate(input, m_bounds[i], m_bounds[i + 1], m_encode[i * 2],
                       m_encode[i * 2 + 1]);
   return m_pSubFunctions[i]
-      ->Call(pdfium::make_span(&input, 1), results)
+      ->Call(pdfium::make_span(&input, 1u), results)
       .has_value();
 }
diff --git a/core/fpdfapi/parser/cpdf_security_handler.cpp b/core/fpdfapi/parser/cpdf_security_handler.cpp
index 598e0dc..5a71ea4 100644
--- a/core/fpdfapi/parser/cpdf_security_handler.cpp
+++ b/core/fpdfapi/parser/cpdf_security_handler.cpp
@@ -55,14 +55,14 @@
   ByteString okey = pEncrypt->GetByteStringFor("O");
   CRYPT_MD5Update(&md5, okey.raw_span());
   uint32_t perm = pEncrypt->GetIntegerFor("P");
-  CRYPT_MD5Update(&md5, pdfium::as_bytes(pdfium::make_span(&perm, 1)));
+  CRYPT_MD5Update(&md5, pdfium::as_bytes(pdfium::make_span(&perm, 1u)));
   if (!file_id.IsEmpty())
     CRYPT_MD5Update(&md5, file_id.raw_span());
   const bool is_revision_3_or_greater = pEncrypt->GetIntegerFor("R") >= 3;
   if (!ignore_metadata && is_revision_3_or_greater &&
       !pEncrypt->GetBooleanFor("EncryptMetadata", true)) {
     constexpr uint32_t tag = 0xFFFFFFFF;
-    CRYPT_MD5Update(&md5, pdfium::as_bytes(pdfium::make_span(&tag, 1)));
+    CRYPT_MD5Update(&md5, pdfium::as_bytes(pdfium::make_span(&tag, 1u)));
   }
   uint8_t digest[16];
   CRYPT_MD5Finish(&md5, digest);
@@ -613,7 +613,7 @@
 
     uint8_t digest[32];
     CRYPT_MD5Finish(&md5, digest);
-    pdfium::span<uint8_t> partial_digest_span(digest, 16);
+    pdfium::span<uint8_t> partial_digest_span(digest, 16u);
     CRYPT_ArcFourCryptBlock(partial_digest_span, {m_EncryptKey, key_len});
     uint8_t tempkey[32];
     for (uint8_t i = 1; i <= 19; i++) {
@@ -621,7 +621,7 @@
         tempkey[j] = m_EncryptKey[j] ^ i;
       CRYPT_ArcFourCryptBlock(partial_digest_span, {tempkey, key_len});
     }
-    CRYPT_MD5Generate({digest, 16}, digest + 16);
+    CRYPT_MD5Generate({digest, 16u}, digest + 16);
     pEncryptDict->SetNewFor<CPDF_String>("U", ByteString(digest, 32), false);
   }
 }
diff --git a/core/fpdfapi/parser/cpdf_seekablemultistream_unittest.cpp b/core/fpdfapi/parser/cpdf_seekablemultistream_unittest.cpp
index 5e63db0..4bd3d85 100644
--- a/core/fpdfapi/parser/cpdf_seekablemultistream_unittest.cpp
+++ b/core/fpdfapi/parser/cpdf_seekablemultistream_unittest.cpp
@@ -19,7 +19,7 @@
 
   uint8_t output_buffer[16];
   memset(output_buffer, 0xbd, sizeof(output_buffer));
-  EXPECT_FALSE(fileread->ReadBlockAtOffset({output_buffer, 0}, 0));
+  EXPECT_FALSE(fileread->ReadBlockAtOffset({output_buffer, 0u}, 0));
   EXPECT_EQ(0xbd, output_buffer[0]);
 }
 
@@ -31,7 +31,7 @@
 
   uint8_t output_buffer[16];
   memset(output_buffer, 0xbd, sizeof(output_buffer));
-  EXPECT_FALSE(fileread->ReadBlockAtOffset({output_buffer, 0}, 0));
+  EXPECT_FALSE(fileread->ReadBlockAtOffset({output_buffer, 0u}, 0));
   EXPECT_EQ(0xbd, output_buffer[0]);
 }
 
@@ -63,15 +63,15 @@
 
   uint8_t output_buffer[16];
   memset(output_buffer, 0xbd, sizeof(output_buffer));
-  EXPECT_TRUE(fileread->ReadBlockAtOffset({output_buffer, 0}, 0));
+  EXPECT_TRUE(fileread->ReadBlockAtOffset({output_buffer, 0u}, 0));
   EXPECT_EQ(0xbd, output_buffer[0]);
 
   memset(output_buffer, 0xbd, sizeof(output_buffer));
-  EXPECT_TRUE(fileread->ReadBlockAtOffset({output_buffer, 0}, 1));
+  EXPECT_TRUE(fileread->ReadBlockAtOffset({output_buffer, 0u}, 1));
   EXPECT_EQ(0xbd, output_buffer[0]);
 
   memset(output_buffer, 0xbd, sizeof(output_buffer));
-  EXPECT_TRUE(fileread->ReadBlockAtOffset({output_buffer, 1}, 0));
+  EXPECT_TRUE(fileread->ReadBlockAtOffset({output_buffer, 1u}, 0));
   EXPECT_EQ(0, memcmp(output_buffer, "o", 1));
   EXPECT_EQ(0xbd, output_buffer[1]);
 
@@ -80,7 +80,7 @@
   EXPECT_EQ(0, memcmp(output_buffer, "one two three!!!", 16));
 
   memset(output_buffer, 0xbd, sizeof(output_buffer));
-  EXPECT_TRUE(fileread->ReadBlockAtOffset({output_buffer, 10}, 2));
+  EXPECT_TRUE(fileread->ReadBlockAtOffset({output_buffer, 10u}, 2));
   EXPECT_EQ(0, memcmp(output_buffer, "e two thre", 10));
   EXPECT_EQ(0xbd, output_buffer[11]);
 
diff --git a/core/fpdfapi/parser/cpdf_syntax_parser_unittest.cpp b/core/fpdfapi/parser/cpdf_syntax_parser_unittest.cpp
index 94ab977..c176f18 100644
--- a/core/fpdfapi/parser/cpdf_syntax_parser_unittest.cpp
+++ b/core/fpdfapi/parser/cpdf_syntax_parser_unittest.cpp
@@ -16,8 +16,8 @@
   {
     // Empty string.
     static const uint8_t data[] = "";
-    CPDF_SyntaxParser parser(
-        pdfium::MakeRetain<CFX_ReadOnlySpanStream>(pdfium::make_span(data, 0)));
+    CPDF_SyntaxParser parser(pdfium::MakeRetain<CFX_ReadOnlySpanStream>(
+        pdfium::make_span(data, 0u)));
     EXPECT_EQ("", parser.ReadHexString());
     EXPECT_EQ(0, parser.GetPos());
   }
@@ -25,8 +25,8 @@
   {
     // Blank string.
     static const uint8_t data[] = "  ";
-    CPDF_SyntaxParser parser(
-        pdfium::MakeRetain<CFX_ReadOnlySpanStream>(pdfium::make_span(data, 2)));
+    CPDF_SyntaxParser parser(pdfium::MakeRetain<CFX_ReadOnlySpanStream>(
+        pdfium::make_span(data, 2u)));
     EXPECT_EQ("", parser.ReadHexString());
     EXPECT_EQ(2, parser.GetPos());
   }
@@ -34,8 +34,8 @@
   {
     // Skips unknown characters.
     static const uint8_t data[] = "z12b";
-    CPDF_SyntaxParser parser(
-        pdfium::MakeRetain<CFX_ReadOnlySpanStream>(pdfium::make_span(data, 4)));
+    CPDF_SyntaxParser parser(pdfium::MakeRetain<CFX_ReadOnlySpanStream>(
+        pdfium::make_span(data, 4u)));
     EXPECT_EQ("\x12\xb0", parser.ReadHexString());
     EXPECT_EQ(4, parser.GetPos());
   }
@@ -44,7 +44,7 @@
     // Skips unknown characters.
     static const uint8_t data[] = "*<&*#$^&@1";
     CPDF_SyntaxParser parser(pdfium::MakeRetain<CFX_ReadOnlySpanStream>(
-        pdfium::make_span(data, 10)));
+        pdfium::make_span(data, 10u)));
     EXPECT_EQ("\x10", parser.ReadHexString());
     EXPECT_EQ(10, parser.GetPos());
   }
@@ -52,8 +52,8 @@
   {
     // Skips unknown characters.
     static const uint8_t data[] = "\x80zab";
-    CPDF_SyntaxParser parser(
-        pdfium::MakeRetain<CFX_ReadOnlySpanStream>(pdfium::make_span(data, 4)));
+    CPDF_SyntaxParser parser(pdfium::MakeRetain<CFX_ReadOnlySpanStream>(
+        pdfium::make_span(data, 4u)));
     EXPECT_EQ("\xab", parser.ReadHexString());
     EXPECT_EQ(4, parser.GetPos());
   }
@@ -61,8 +61,8 @@
   {
     // Skips unknown characters.
     static const uint8_t data[] = "\xffzab";
-    CPDF_SyntaxParser parser(
-        pdfium::MakeRetain<CFX_ReadOnlySpanStream>(pdfium::make_span(data, 4)));
+    CPDF_SyntaxParser parser(pdfium::MakeRetain<CFX_ReadOnlySpanStream>(
+        pdfium::make_span(data, 4u)));
     EXPECT_EQ("\xab", parser.ReadHexString());
     EXPECT_EQ(4, parser.GetPos());
   }
@@ -70,8 +70,8 @@
   {
     // Regular conversion.
     static const uint8_t data[] = "1A2b>abcd";
-    CPDF_SyntaxParser parser(
-        pdfium::MakeRetain<CFX_ReadOnlySpanStream>(pdfium::make_span(data, 9)));
+    CPDF_SyntaxParser parser(pdfium::MakeRetain<CFX_ReadOnlySpanStream>(
+        pdfium::make_span(data, 9u)));
     EXPECT_EQ("\x1a\x2b", parser.ReadHexString());
     EXPECT_EQ(5, parser.GetPos());
   }
@@ -79,8 +79,8 @@
   {
     // Position out of bounds.
     static const uint8_t data[] = "12ab>";
-    CPDF_SyntaxParser parser(
-        pdfium::MakeRetain<CFX_ReadOnlySpanStream>(pdfium::make_span(data, 5)));
+    CPDF_SyntaxParser parser(pdfium::MakeRetain<CFX_ReadOnlySpanStream>(
+        pdfium::make_span(data, 5u)));
     parser.SetPos(5);
     EXPECT_EQ("", parser.ReadHexString());
 
@@ -98,8 +98,8 @@
   {
     // Missing ending >.
     static const uint8_t data[] = "1A2b";
-    CPDF_SyntaxParser parser(
-        pdfium::MakeRetain<CFX_ReadOnlySpanStream>(pdfium::make_span(data, 4)));
+    CPDF_SyntaxParser parser(pdfium::MakeRetain<CFX_ReadOnlySpanStream>(
+        pdfium::make_span(data, 4u)));
     EXPECT_EQ("\x1a\x2b", parser.ReadHexString());
     EXPECT_EQ(4, parser.GetPos());
   }
@@ -107,8 +107,8 @@
   {
     // Missing ending >.
     static const uint8_t data[] = "12abz";
-    CPDF_SyntaxParser parser(
-        pdfium::MakeRetain<CFX_ReadOnlySpanStream>(pdfium::make_span(data, 5)));
+    CPDF_SyntaxParser parser(pdfium::MakeRetain<CFX_ReadOnlySpanStream>(
+        pdfium::make_span(data, 5u)));
     EXPECT_EQ("\x12\xab", parser.ReadHexString());
     EXPECT_EQ(5, parser.GetPos());
   }
@@ -116,8 +116,8 @@
   {
     // Uneven number of bytes.
     static const uint8_t data[] = "1A2>asdf";
-    CPDF_SyntaxParser parser(
-        pdfium::MakeRetain<CFX_ReadOnlySpanStream>(pdfium::make_span(data, 8)));
+    CPDF_SyntaxParser parser(pdfium::MakeRetain<CFX_ReadOnlySpanStream>(
+        pdfium::make_span(data, 8u)));
     EXPECT_EQ("\x1a\x20", parser.ReadHexString());
     EXPECT_EQ(4, parser.GetPos());
   }
@@ -125,8 +125,8 @@
   {
     // Uneven number of bytes.
     static const uint8_t data[] = "1A2zasdf";
-    CPDF_SyntaxParser parser(
-        pdfium::MakeRetain<CFX_ReadOnlySpanStream>(pdfium::make_span(data, 8)));
+    CPDF_SyntaxParser parser(pdfium::MakeRetain<CFX_ReadOnlySpanStream>(
+        pdfium::make_span(data, 8u)));
     EXPECT_EQ("\x1a\x2a\xdf", parser.ReadHexString());
     EXPECT_EQ(8, parser.GetPos());
   }
@@ -134,8 +134,8 @@
   {
     // Just ending character.
     static const uint8_t data[] = ">";
-    CPDF_SyntaxParser parser(
-        pdfium::MakeRetain<CFX_ReadOnlySpanStream>(pdfium::make_span(data, 1)));
+    CPDF_SyntaxParser parser(pdfium::MakeRetain<CFX_ReadOnlySpanStream>(
+        pdfium::make_span(data, 1u)));
     EXPECT_EQ("", parser.ReadHexString());
     EXPECT_EQ(1, parser.GetPos());
   }
@@ -145,7 +145,7 @@
   // Data with a reference with number CPDF_Object::kInvalidObjNum
   static const uint8_t data[] = "4294967295 0 R";
   CPDF_SyntaxParser parser(
-      pdfium::MakeRetain<CFX_ReadOnlySpanStream>(pdfium::make_span(data, 14)));
+      pdfium::MakeRetain<CFX_ReadOnlySpanStream>(pdfium::make_span(data, 14u)));
   RetainPtr<CPDF_Object> ref = parser.GetObjectBody(nullptr);
   EXPECT_FALSE(ref);
 }
diff --git a/core/fpdfapi/render/cpdf_docrenderdata.cpp b/core/fpdfapi/render/cpdf_docrenderdata.cpp
index e63d54d..db0af09 100644
--- a/core/fpdfapi/render/cpdf_docrenderdata.cpp
+++ b/core/fpdfapi/render/cpdf_docrenderdata.cpp
@@ -115,7 +115,7 @@
           samples[i][v] = v;
           continue;
         }
-        pFuncs[i]->Call(pdfium::make_span(&input, 1), output);
+        pFuncs[i]->Call(pdfium::make_span(&input, 1u), output);
         size_t o = FXSYS_roundf(output[0] * 255);
         if (o != v)
           bIdentity = false;
@@ -126,7 +126,7 @@
     for (size_t v = 0; v < CPDF_TransferFunc::kChannelSampleSize; ++v) {
       float input = static_cast<float>(v) / 255.0f;
       if (pFuncs[0]->CountOutputs() <= kMaxOutputs)
-        pFuncs[0]->Call(pdfium::make_span(&input, 1), output);
+        pFuncs[0]->Call(pdfium::make_span(&input, 1u), output);
       size_t o = FXSYS_roundf(output[0] * 255);
       if (o != v)
         bIdentity = false;
diff --git a/core/fpdfapi/render/cpdf_rendershading.cpp b/core/fpdfapi/render/cpdf_rendershading.cpp
index a0965aa..3ccd634 100644
--- a/core/fpdfapi/render/cpdf_rendershading.cpp
+++ b/core/fpdfapi/render/cpdf_rendershading.cpp
@@ -77,7 +77,7 @@
       if (!func)
         continue;
       absl::optional<uint32_t> nresults =
-          func->Call(pdfium::make_span(&input, 1), result_span);
+          func->Call(pdfium::make_span(&input, 1u), result_span);
       if (nresults.has_value())
         result_span = result_span.subspan(nresults.value());
     }
diff --git a/core/fpdfapi/render/cpdf_renderstatus.cpp b/core/fpdfapi/render/cpdf_renderstatus.cpp
index 7ae3655..53a1244 100644
--- a/core/fpdfapi/render/cpdf_renderstatus.cpp
+++ b/core/fpdfapi/render/cpdf_renderstatus.cpp
@@ -1379,7 +1379,7 @@
     std::vector<float> results(pFunc->CountOutputs());
     for (size_t i = 0; i < transfers.size(); ++i) {
       float input = i / 255.0f;
-      pFunc->Call(pdfium::make_span(&input, 1), results);
+      pFunc->Call(pdfium::make_span(&input, 1u), results);
       transfers[i] = FXSYS_roundf(results[0] * 255);
     }
   } else {
diff --git a/core/fxcodec/bmp/cfx_bmpdecompressor.cpp b/core/fxcodec/bmp/cfx_bmpdecompressor.cpp
index b7fdc84..7e63423 100644
--- a/core/fxcodec/bmp/cfx_bmpdecompressor.cpp
+++ b/core/fxcodec/bmp/cfx_bmpdecompressor.cpp
@@ -90,7 +90,7 @@
 BmpDecoder::Status CFX_BmpDecompressor::ReadBmpHeader() {
   BmpFileHeader bmp_header;
   if (!ReadAllOrNone(
-          pdfium::as_writable_bytes(pdfium::make_span(&bmp_header, 1)))) {
+          pdfium::as_writable_bytes(pdfium::make_span(&bmp_header, 1u)))) {
     return BmpDecoder::Status::kContinue;
   }
 
@@ -105,7 +105,7 @@
 
   size_t pos = input_buffer_->GetPosition();
   if (!ReadAllOrNone(
-          pdfium::as_writable_bytes(pdfium::make_span(&img_ifh_size_, 1)))) {
+          pdfium::as_writable_bytes(pdfium::make_span(&img_ifh_size_, 1u)))) {
     return BmpDecoder::Status::kContinue;
   }
   if (!input_buffer_->Seek(pos))
@@ -126,7 +126,7 @@
     pal_type_ = PalType::kOld;
     BmpCoreHeader bmp_core_header;
     if (!ReadAllOrNone(pdfium::as_writable_bytes(
-            pdfium::make_span(&bmp_core_header, 1)))) {
+            pdfium::make_span(&bmp_core_header, 1u)))) {
       return BmpDecoder::Status::kContinue;
     }
 
@@ -144,7 +144,7 @@
   if (img_ifh_size_ == kBmpInfoHeaderSize) {
     BmpInfoHeader bmp_info_header;
     if (!ReadAllOrNone(pdfium::as_writable_bytes(
-            pdfium::make_span(&bmp_info_header, 1)))) {
+            pdfium::make_span(&bmp_info_header, 1u)))) {
       return BmpDecoder::Status::kContinue;
     }
 
@@ -173,7 +173,7 @@
   FX_SAFE_SIZE_T new_pos = input_buffer_->GetPosition();
   BmpInfoHeader bmp_info_header;
   if (!ReadAllOrNone(
-          pdfium::as_writable_bytes(pdfium::make_span(&bmp_info_header, 1)))) {
+          pdfium::as_writable_bytes(pdfium::make_span(&bmp_info_header, 1u)))) {
     return BmpDecoder::Status::kContinue;
   }
 
@@ -461,13 +461,15 @@
   uint8_t first_part;
   col_num_ = 0;
   while (true) {
-    if (!ReadAllOrNone(pdfium::make_span(&first_part, 1)))
+    if (!ReadAllOrNone(pdfium::make_span(&first_part, 1u))) {
       return BmpDecoder::Status::kContinue;
+    }
 
     switch (first_part) {
       case kRleMarker: {
-        if (!ReadAllOrNone(pdfium::make_span(&first_part, 1)))
+        if (!ReadAllOrNone(pdfium::make_span(&first_part, 1u))) {
           return BmpDecoder::Status::kContinue;
+        }
 
         switch (first_part) {
           case kRleEol: {
@@ -535,8 +537,9 @@
           return BmpDecoder::Status::kFail;
 
         uint8_t second_part;
-        if (!ReadAllOrNone(pdfium::make_span(&second_part, 1)))
+        if (!ReadAllOrNone(pdfium::make_span(&second_part, 1u))) {
           return BmpDecoder::Status::kContinue;
+        }
 
         fxcrt::spanset(
             pdfium::make_span(out_row_buffer_).subspan(col_num_, first_part),
@@ -554,13 +557,15 @@
   uint8_t first_part;
   col_num_ = 0;
   while (true) {
-    if (!ReadAllOrNone(pdfium::make_span(&first_part, 1)))
+    if (!ReadAllOrNone(pdfium::make_span(&first_part, 1u))) {
       return BmpDecoder::Status::kContinue;
+    }
 
     switch (first_part) {
       case kRleMarker: {
-        if (!ReadAllOrNone(pdfium::make_span(&first_part, 1)))
+        if (!ReadAllOrNone(pdfium::make_span(&first_part, 1u))) {
           return BmpDecoder::Status::kContinue;
+        }
 
         switch (first_part) {
           case kRleEol: {
@@ -641,8 +646,9 @@
           first_part = avail_size - 1;
         }
         uint8_t second_part;
-        if (!ReadAllOrNone(pdfium::make_span(&second_part, 1)))
+        if (!ReadAllOrNone(pdfium::make_span(&second_part, 1u))) {
           return BmpDecoder::Status::kContinue;
+        }
 
         for (uint8_t i = 0; i < first_part; i++) {
           uint8_t second_byte = second_part;
diff --git a/core/fxcodec/gif/cfx_gifcontext_unittest.cpp b/core/fxcodec/gif/cfx_gifcontext_unittest.cpp
index ad731bb..56318fe 100644
--- a/core/fxcodec/gif/cfx_gifcontext_unittest.cpp
+++ b/core/fxcodec/gif/cfx_gifcontext_unittest.cpp
@@ -36,15 +36,15 @@
   uint8_t buffer[] = {0x00, 0x01, 0x02};
   CFX_GifContextForTest context;
 
-  context.SetTestInputBuffer({nullptr, 0});
+  context.SetTestInputBuffer({nullptr, 0u});
   EXPECT_EQ(0u, context.InputBuffer()->GetSize());
   EXPECT_EQ(0u, context.InputBuffer()->GetPosition());
 
-  context.SetTestInputBuffer({buffer, 0});
+  context.SetTestInputBuffer({buffer, 0u});
   EXPECT_EQ(0u, context.InputBuffer()->GetSize());
   EXPECT_EQ(0u, context.InputBuffer()->GetPosition());
 
-  context.SetTestInputBuffer({buffer, 3});
+  context.SetTestInputBuffer({buffer, 3u});
   EXPECT_EQ(3u, context.InputBuffer()->GetSize());
   EXPECT_EQ(0u, context.InputBuffer()->GetPosition());
 }
@@ -55,18 +55,18 @@
                           0x05, 0x06, 0x07, 0x08, 0x09};
   CFX_GifContextForTest context;
 
-  context.SetTestInputBuffer({nullptr, 0});
+  context.SetTestInputBuffer({nullptr, 0u});
   EXPECT_FALSE(context.ReadAllOrNone(nullptr, 0));
   EXPECT_FALSE(context.ReadAllOrNone(nullptr, 10));
 
   EXPECT_FALSE(context.ReadAllOrNone(dest_buffer.data(), 0));
   EXPECT_FALSE(context.ReadAllOrNone(dest_buffer.data(), 10));
 
-  context.SetTestInputBuffer({src_buffer, 0});
+  context.SetTestInputBuffer({src_buffer, 0u});
   dest_buffer.resize(sizeof(src_buffer));
   EXPECT_FALSE(context.ReadAllOrNone(dest_buffer.data(), sizeof(src_buffer)));
 
-  context.SetTestInputBuffer({src_buffer, 1});
+  context.SetTestInputBuffer({src_buffer, 1u});
   EXPECT_FALSE(context.ReadAllOrNone(dest_buffer.data(), sizeof(src_buffer)));
   EXPECT_EQ(0u, context.InputBuffer()->GetPosition());
   EXPECT_FALSE(context.ReadAllOrNone(nullptr, sizeof(src_buffer)));
@@ -91,7 +91,7 @@
   CFX_GifContextForTest context;
   {
     uint8_t data[1];
-    context.SetTestInputBuffer({data, 0});
+    context.SetTestInputBuffer({data, 0u});
     EXPECT_EQ(GifDecoder::Status::kUnfinished, context.ReadGifSignature());
     EXPECT_EQ(0u, context.InputBuffer()->GetPosition());
     context.SetTestInputBuffer({});
@@ -149,7 +149,7 @@
   CFX_GifContextForTest context;
   {
     uint8_t data[1];
-    context.SetTestInputBuffer({data, 0});
+    context.SetTestInputBuffer({data, 0u});
     EXPECT_EQ(GifDecoder::Status::kUnfinished,
               context.ReadLogicalScreenDescriptor());
     context.SetTestInputBuffer({});
diff --git a/core/fxcrt/binary_buffer.cpp b/core/fxcrt/binary_buffer.cpp
index 341d4c0..8d3335e 100644
--- a/core/fxcrt/binary_buffer.cpp
+++ b/core/fxcrt/binary_buffer.cpp
@@ -104,7 +104,7 @@
 }
 
 void BinaryBuffer::AppendUint8(uint8_t value) {
-  AppendSpan({&value, 1});
+  AppendSpan({&value, 1u});
 }
 
 void BinaryBuffer::AppendUint16(uint16_t value) {
diff --git a/core/fxcrt/bytestring_unittest.cpp b/core/fxcrt/bytestring_unittest.cpp
index 9d2f132..2fc83bd 100644
--- a/core/fxcrt/bytestring_unittest.cpp
+++ b/core/fxcrt/bytestring_unittest.cpp
@@ -1204,7 +1204,7 @@
   ByteStringView string3("abc");
   ByteStringView string6("abcdef");
   ByteStringView alternate_string3("abcdef", 3);
-  ByteStringView span_string4(pdfium::as_bytes(pdfium::make_span("abcd", 4)));
+  ByteStringView span_string4(pdfium::as_bytes(pdfium::make_span("abcd", 4u)));
   ByteStringView embedded_nul_string7("abc\0def", 7);
   ByteStringView illegal_string7("abcdef", 7);
 
@@ -1519,7 +1519,7 @@
   EXPECT_FALSE(c_string3 == byte_string_c);
 
   pdfium::span<const uint8_t> span5(
-      pdfium::as_bytes(pdfium::make_span("hello", 5)));
+      pdfium::as_bytes(pdfium::make_span("hello", 5u)));
   EXPECT_EQ(byte_string_c.raw_span(), span5);
 }
 
diff --git a/core/fxcrt/fx_stream.cpp b/core/fxcrt/fx_stream.cpp
index 1ceb539..63ce068 100644
--- a/core/fxcrt/fx_stream.cpp
+++ b/core/fxcrt/fx_stream.cpp
@@ -49,7 +49,7 @@
 }
 
 bool IFX_WriteStream::WriteByte(uint8_t byte) {
-  return WriteBlock({&byte, 1});
+  return WriteBlock({&byte, 1u});
 }
 
 bool IFX_WriteStream::WriteDWord(uint32_t i) {
diff --git a/core/fxcrt/string_view_template.h b/core/fxcrt/string_view_template.h
index 475490f..628bb79 100644
--- a/core/fxcrt/string_view_template.h
+++ b/core/fxcrt/string_view_template.h
@@ -74,7 +74,7 @@
   // |ch| must be an lvalue that outlives the StringViewTemplate.
   // NOLINTNEXTLINE(runtime/explicit)
   constexpr StringViewTemplate(const CharType& ch) noexcept
-      : m_Span(reinterpret_cast<const UnsignedType*>(&ch), 1) {}
+      : m_Span(reinterpret_cast<const UnsignedType*>(&ch), 1u) {}
 
   StringViewTemplate& operator=(const CharType* src) {
     m_Span = pdfium::span<const UnsignedType>(
diff --git a/core/fxge/win32/cwin32_platform.cpp b/core/fxge/win32/cwin32_platform.cpp
index 428f132..0d08822 100644
--- a/core/fxge/win32/cwin32_platform.cpp
+++ b/core/fxge/win32/cwin32_platform.cpp
@@ -159,7 +159,7 @@
   size_t font_size = GetFontData(hFont, 0, {});
   if (font_size != GDI_ERROR && font_size >= sizeof(uint32_t)) {
     uint32_t header;
-    auto span = pdfium::as_writable_bytes(pdfium::make_span(&header, 1));
+    auto span = pdfium::as_writable_bytes(pdfium::make_span(&header, 1u));
     GetFontData(hFont, 0, span);
     header = FXSYS_UINT32_GET_MSBFIRST(span);
     ret = header == FXBSTR_ID('O', 'T', 'T', 'O') ||
diff --git a/fpdfsdk/fpdf_edittext.cpp b/fpdfsdk/fpdf_edittext.cpp
index 55ac4f7..78f26c5 100644
--- a/fpdfsdk/fpdf_edittext.cpp
+++ b/fpdfsdk/fpdf_edittext.cpp
@@ -829,7 +829,7 @@
 
   uint32_t charcode = pFont->CharCodeFromUnicode(static_cast<wchar_t>(glyph));
   std::vector<TextCharPos> pos =
-      GetCharPosList(pdfium::make_span(&charcode, 1),
+      GetCharPosList(pdfium::make_span(&charcode, 1u),
                      pdfium::span<const float>(), pFont, font_size);
   if (pos.empty())
     return nullptr;
diff --git a/fpdfsdk/fpdf_view.cpp b/fpdfsdk/fpdf_view.cpp
index 958d361..4655fe5 100644
--- a/fpdfsdk/fpdf_view.cpp
+++ b/fpdfsdk/fpdf_view.cpp
@@ -316,9 +316,13 @@
 
 FPDF_EXPORT FPDF_DOCUMENT FPDF_CALLCONV
 FPDF_LoadMemDocument(const void* data_buf, int size, FPDF_BYTESTRING password) {
+  if (size < 0) {
+    return nullptr;
+  }
+
   return LoadDocumentImpl(
-      pdfium::MakeRetain<CFX_ReadOnlySpanStream>(
-          pdfium::make_span(static_cast<const uint8_t*>(data_buf), size)),
+      pdfium::MakeRetain<CFX_ReadOnlySpanStream>(pdfium::make_span(
+          static_cast<const uint8_t*>(data_buf), static_cast<size_t>(size))),
       password);
 }
 
diff --git a/samples/helpers/write.cc b/samples/helpers/write.cc
index ea1c763..d964523 100644
--- a/samples/helpers/write.cc
+++ b/samples/helpers/write.cc
@@ -458,8 +458,8 @@
     return "";
   }
 
-  auto input =
-      pdfium::make_span(static_cast<uint8_t*>(buffer), stride * height);
+  auto input = pdfium::make_span(static_cast<uint8_t*>(buffer),
+                                 static_cast<size_t>(stride) * height);
   std::vector<uint8_t> png_encoding =
       EncodePng(input, width, height, stride, FPDFBitmap_BGRA);
   if (png_encoding.empty()) {
@@ -705,7 +705,7 @@
 
   auto input = pdfium::make_span(
       static_cast<const uint8_t*>(FPDFBitmap_GetBuffer(bitmap.get())),
-      stride * height);
+      static_cast<size_t>(stride) * height);
 
   png_encoding = EncodePng(input, width, height, stride, format);
   return png_encoding;
diff --git a/testing/embedder_test.cpp b/testing/embedder_test.cpp
index c9919d3..80b1578 100644
--- a/testing/embedder_test.cpp
+++ b/testing/embedder_test.cpp
@@ -783,8 +783,9 @@
   int usable_bytes_per_row =
       GetBitmapBytesPerPixel(bitmap) * FPDFBitmap_GetWidth(bitmap);
   int height = FPDFBitmap_GetHeight(bitmap);
-  auto span = pdfium::make_span(
-      static_cast<uint8_t*>(FPDFBitmap_GetBuffer(bitmap)), stride * height);
+  auto span =
+      pdfium::make_span(static_cast<uint8_t*>(FPDFBitmap_GetBuffer(bitmap)),
+                        static_cast<size_t>(stride) * height);
 
   CRYPT_md5_context context = CRYPT_MD5Start();
   for (int i = 0; i < height; ++i)
diff --git a/xfa/fde/cfde_textout.cpp b/xfa/fde/cfde_textout.cpp
index be60c3a..bc6aa0e 100644
--- a/xfa/fde/cfde_textout.cpp
+++ b/xfa/fde/cfde_textout.cpp
@@ -73,7 +73,7 @@
 
   RetainPtr<CFGAS_GEFont> pCurFont;
   TextCharPos* pCurCP = nullptr;
-  int32_t iCurCount = 0;
+  size_t count = 0;
   static constexpr CFX_TextRenderOptions kOptions(CFX_TextRenderOptions::kLcd);
   for (auto& pos : pCharPos) {
     RetainPtr<CFGAS_GEFont> pSTFont =
@@ -93,19 +93,19 @@
         font = pFxFont;
 #endif
 
-        device->DrawNormalText(pdfium::make_span(pCurCP, iCurCount), font,
+        device->DrawNormalText(pdfium::make_span(pCurCP, count), font,
                                -fFontSize, matrix, color, kOptions);
       }
       pCurFont = pSTFont;
       pCurCP = &pos;
-      iCurCount = 1;
+      count = 1;
     } else {
-      ++iCurCount;
+      ++count;
     }
   }
 
   bool bRet = true;
-  if (pCurFont && iCurCount) {
+  if (pCurFont && count) {
     pFxFont = pCurFont->GetDevFont();
     CFX_Font* font;
 #if !BUILDFLAG(IS_WIN)
@@ -116,7 +116,7 @@
     font = pFxFont;
 #endif
 
-    bRet = device->DrawNormalText(pdfium::make_span(pCurCP, iCurCount), font,
+    bRet = device->DrawNormalText(pdfium::make_span(pCurCP, count), font,
                                   -fFontSize, matrix, color, kOptions);
   }