Simplify some span usage.

-- Avoid explicit make_span() now that the compiler can implicitly
   convert arguments using C++17 Class Template Argument Deduction.
-- Convert subspan(0, x) to first(x).
-- Convert as_bytes(make_span()) to as_byte_span().

Change-Id: If9487e19abb6c88b2fd88736b85e0a0b7999b5bb
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/121214
Reviewed-by: Tom Sepez <tsepez@google.com>
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
diff --git a/core/fpdfapi/font/cpdf_tounicodemap_unittest.cpp b/core/fpdfapi/font/cpdf_tounicodemap_unittest.cpp
index 7d7400c..6d032dc 100644
--- a/core/fpdfapi/font/cpdf_tounicodemap_unittest.cpp
+++ b/core/fpdfapi/font/cpdf_tounicodemap_unittest.cpp
@@ -65,21 +65,21 @@
   {
     static constexpr uint8_t kInput1[] =
         "beginbfrange<FFFFFFFF><FFFFFFFF>[<0041>]endbfrange";
-    auto stream = pdfium::MakeRetain<CPDF_Stream>(pdfium::make_span(kInput1));
+    auto stream = pdfium::MakeRetain<CPDF_Stream>(kInput1);
     CPDF_ToUnicodeMap map(stream);
     EXPECT_EQ(L"A", map.Lookup(0xffffffff));
   }
   {
     static constexpr uint8_t kInput2[] =
         "beginbfrange<FFFFFFFF><FFFFFFFF><0042>endbfrange";
-    auto stream = pdfium::MakeRetain<CPDF_Stream>(pdfium::make_span(kInput2));
+    auto stream = pdfium::MakeRetain<CPDF_Stream>(kInput2);
     CPDF_ToUnicodeMap map(stream);
     EXPECT_EQ(L"B", map.Lookup(0xffffffff));
   }
   {
     static constexpr uint8_t kInput3[] =
         "beginbfrange<FFFFFFFF><FFFFFFFF><00410042>endbfrange";
-    auto stream = pdfium::MakeRetain<CPDF_Stream>(pdfium::make_span(kInput3));
+    auto stream = pdfium::MakeRetain<CPDF_Stream>(kInput3);
     CPDF_ToUnicodeMap map(stream);
     EXPECT_EQ(L"AB", map.Lookup(0xffffffff));
   }
@@ -90,7 +90,7 @@
     // Both the CIDs and the unicodes are different.
     static constexpr uint8_t kInput1[] =
         "beginbfchar<1><0041><2><0042>endbfchar";
-    auto stream = pdfium::MakeRetain<CPDF_Stream>(pdfium::make_span(kInput1));
+    auto stream = pdfium::MakeRetain<CPDF_Stream>(kInput1);
     CPDF_ToUnicodeMap map(stream);
     EXPECT_EQ(1u, map.ReverseLookup(0x0041));
     EXPECT_EQ(2u, map.ReverseLookup(0x0042));
@@ -101,7 +101,7 @@
     // The same CID with different unicodes.
     static constexpr uint8_t kInput2[] =
         "beginbfrange<0><0><0041><0><0><0042>endbfrange";
-    auto stream = pdfium::MakeRetain<CPDF_Stream>(pdfium::make_span(kInput2));
+    auto stream = pdfium::MakeRetain<CPDF_Stream>(kInput2);
     CPDF_ToUnicodeMap map(stream);
     EXPECT_EQ(0u, map.ReverseLookup(0x0041));
     EXPECT_EQ(0u, map.ReverseLookup(0x0042));
@@ -113,7 +113,7 @@
     static constexpr uint8_t kInput3[] =
         "beginbfrange<0><0>[<0041>]endbfrange\n"
         "beginbfchar<0><0041>endbfchar";
-    auto stream = pdfium::MakeRetain<CPDF_Stream>(pdfium::make_span(kInput3));
+    auto stream = pdfium::MakeRetain<CPDF_Stream>(kInput3);
     CPDF_ToUnicodeMap map(stream);
     EXPECT_EQ(0u, map.ReverseLookup(0x0041));
     EXPECT_EQ(1u, map.GetUnicodeCountByCharcodeForTesting(0u));
diff --git a/core/fpdfapi/page/cpdf_colorspace.cpp b/core/fpdfapi/page/cpdf_colorspace.cpp
index b3b68a4..d85bb65 100644
--- a/core/fpdfapi/page/cpdf_colorspace.cpp
+++ b/core/fpdfapi/page/cpdf_colorspace.cpp
@@ -1204,8 +1204,7 @@
   // Using at least 16 elements due to the call m_pAltCS->GetRGB() below.
   std::vector<float> results(std::max(m_pFunc->OutputCount(), 16u));
   uint32_t nresults =
-      m_pFunc->Call(pBuf.first(ComponentCount()), pdfium::make_span(results))
-          .value_or(0);
+      m_pFunc->Call(pBuf.first(ComponentCount()), results).value_or(0);
 
   if (nresults == 0) {
     return std::nullopt;
diff --git a/core/fpdfapi/parser/cpdf_hint_tables.cpp b/core/fpdfapi/parser/cpdf_hint_tables.cpp
index 6930714..584bb96 100644
--- a/core/fpdfapi/parser/cpdf_hint_tables.cpp
+++ b/core/fpdfapi/parser/cpdf_hint_tables.cpp
@@ -471,7 +471,7 @@
     return false;
   }
 
-  CFX_BitStream bs(pAcc->GetSpan().subspan(0, size));
+  CFX_BitStream bs(pAcc->GetSpan().first(size));
   return ReadPageHintTable(&bs) &&
          ReadSharedObjHintTable(&bs, shared_hint_table_offset);
 }
diff --git a/core/fpdfapi/parser/cpdf_security_handler.cpp b/core/fpdfapi/parser/cpdf_security_handler.cpp
index b8621df..414692c 100644
--- a/core/fpdfapi/parser/cpdf_security_handler.cpp
+++ b/core/fpdfapi/parser/cpdf_security_handler.cpp
@@ -565,8 +565,8 @@
     FX_Random_GenerateMT(random);
     CRYPT_sha2_context sha;
     CRYPT_SHA256Start(&sha);
-    CRYPT_SHA256Update(&sha, pdfium::as_bytes(pdfium::make_span(random)));
-    CRYPT_SHA256Finish(&sha, pdfium::make_span(m_EncryptKey));
+    CRYPT_SHA256Update(&sha, pdfium::as_byte_span(random));
+    CRYPT_SHA256Finish(&sha, m_EncryptKey);
     AES256_SetPassword(pEncryptDict, password);
     AES256_SetPerms(pEncryptDict);
     return;
@@ -620,9 +620,7 @@
   CRYPT_sha1_context sha;
   CRYPT_SHA1Start(&sha);
   CRYPT_SHA1Update(&sha, m_EncryptKey);
-  // SAFETY: fixed-length string "hello" contains 5 characters.
-  CRYPT_SHA1Update(
-      &sha, pdfium::as_bytes(UNSAFE_BUFFERS(pdfium::make_span("hello", 5))));
+  CRYPT_SHA1Update(&sha, pdfium::as_byte_span("hello").first<5u>());
 
   uint8_t digest[20];
   CRYPT_SHA1Finish(&sha, digest);
diff --git a/core/fxcodec/bmp/cfx_bmpdecompressor.cpp b/core/fxcodec/bmp/cfx_bmpdecompressor.cpp
index dfce910..a18c7b3 100644
--- a/core/fxcodec/bmp/cfx_bmpdecompressor.cpp
+++ b/core/fxcodec/bmp/cfx_bmpdecompressor.cpp
@@ -255,8 +255,9 @@
     return BmpDecoder::Status::kFail;
 
   uint32_t masks[3];
-  if (!ReadAllOrNone(pdfium::as_writable_bytes(pdfium::make_span(masks))))
+  if (!ReadAllOrNone(pdfium::as_writable_byte_span(masks))) {
     return BmpDecoder::Status::kContinue;
+  }
 
   mask_red_ = fxcrt::FromLE32(masks[0]);
   mask_green_ = fxcrt::FromLE32(masks[1]);
diff --git a/core/fxcodec/fax/faxmodule.cpp b/core/fxcodec/fax/faxmodule.cpp
index 9a0bdda..593202f 100644
--- a/core/fxcodec/fax/faxmodule.cpp
+++ b/core/fxcodec/fax/faxmodule.cpp
@@ -821,12 +821,11 @@
   m_DestBitpos = 0;
   uint8_t last_byte = 0;
   for (int i = 0; i < m_Rows; ++i) {
-    pdfium::span<uint8_t> buf_span = pdfium::make_span(m_LineBuf);
-    fxcrt::Fill(buf_span, 0);
-    buf_span[0] = last_byte;
+    fxcrt::Fill(m_LineBuf, 0);
+    m_LineBuf[0] = last_byte;
     pdfium::span<const uint8_t> scan_line = m_Src->GetScanline(i);
     FaxEncode2DLine(scan_line);
-    m_DestBuf.AppendSpan(buf_span.first(m_DestBitpos / 8));
+    m_DestBuf.AppendSpan(pdfium::make_span(m_LineBuf).first(m_DestBitpos / 8));
     last_byte = m_LineBuf[m_DestBitpos / 8];
     m_DestBitpos %= 8;
     m_RefLineSpan = scan_line;
diff --git a/core/fxcodec/flate/flatemodule.cpp b/core/fxcodec/flate/flatemodule.cpp
index 75f0b28..9cfdade 100644
--- a/core/fxcodec/flate/flatemodule.cpp
+++ b/core/fxcodec/flate/flatemodule.cpp
@@ -810,16 +810,15 @@
       return {std::move(dest_buf), bytes_consumed};
     }
     case PredictorType::kPng: {
-      std::optional<DataVector<uint8_t>> result = PNG_Predictor(
-          Colors, BitsPerComponent, Columns, pdfium::make_span(dest_buf));
+      std::optional<DataVector<uint8_t>> result =
+          PNG_Predictor(Colors, BitsPerComponent, Columns, dest_buf);
       if (!result.has_value()) {
         return {std::move(dest_buf), FX_INVALID_OFFSET};
       }
       return {std::move(result.value()), bytes_consumed};
     }
     case PredictorType::kFlate: {
-      bool ret = TIFF_Predictor(Colors, BitsPerComponent, Columns,
-                                pdfium::make_span(dest_buf));
+      bool ret = TIFF_Predictor(Colors, BitsPerComponent, Columns, dest_buf);
       return {std::move(dest_buf), ret ? bytes_consumed : FX_INVALID_OFFSET};
     }
   }
diff --git a/core/fxcodec/progressive_decoder_unittest.cpp b/core/fxcodec/progressive_decoder_unittest.cpp
index 9bf2b4b..55d9346 100644
--- a/core/fxcodec/progressive_decoder_unittest.cpp
+++ b/core/fxcodec/progressive_decoder_unittest.cpp
@@ -325,7 +325,7 @@
         bitmap->GetScanline(kHeight - row - 1);
 
     EXPECT_THAT(
-        scanline.subspan(0, kScanlineSize - 1),
+        scanline.first(kScanlineSize - 1),
         ElementsAreArray(IotaArray<kScanlineSize - 1>(row * kScanlineSize)));
 
     // Last byte is padding to a 32-bit boundary.
diff --git a/core/fxge/cfx_fontmapper.cpp b/core/fxge/cfx_fontmapper.cpp
index 4cfb14b..4e45cf2 100644
--- a/core/fxge/cfx_fontmapper.cpp
+++ b/core/fxge/cfx_fontmapper.cpp
@@ -416,14 +416,13 @@
 
 uint32_t CFX_FontMapper::GetChecksumFromTT(void* font_handle) {
   uint32_t buffer[256];
-  m_pFontInfo->GetFontData(
-      font_handle, kTableTTCF,
-      pdfium::as_writable_bytes(pdfium::make_span(buffer)));
+  m_pFontInfo->GetFontData(font_handle, kTableTTCF,
+                           pdfium::as_writable_byte_span(buffer));
 
   uint32_t checksum = 0;
-  for (auto x : buffer)
+  for (auto x : buffer) {
     checksum += x;
-
+  }
   return checksum;
 }