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;
}