Start using C++17.
- Replace pdfium::size() with std::size().
- Update README.md.
Bug: pdfium:1766,pdfium:1780
Change-Id: Ie4dae21ec7da78cc32dab52f3580d6c94a9fa586
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/92790
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
diff --git a/fxjs/cjs_globalarrays.cpp b/fxjs/cjs_globalarrays.cpp
index e7fef52..dbfda2c 100644
--- a/fxjs/cjs_globalarrays.cpp
+++ b/fxjs/cjs_globalarrays.cpp
@@ -6,7 +6,8 @@
#include "fxjs/cjs_globalarrays.h"
-#include "third_party/base/cxx17_backports.h"
+#include <iterator>
+
#include "third_party/base/numerics/safe_conversions.h"
#include "v8/include/v8-container.h"
#include "v8/include/v8-isolate.h"
@@ -16,7 +17,7 @@
static const wchar_t* const values[] = {__VA_ARGS__}; \
v8::Local<v8::Array> array = (rt)->NewArray(); \
v8::Local<v8::Context> ctx = (rt)->GetIsolate()->GetCurrentContext(); \
- for (size_t i = 0; i < pdfium::size(values); ++i) { \
+ for (size_t i = 0; i < std::size(values); ++i) { \
array \
->Set(ctx, pdfium::base::checked_cast<uint32_t>(i), \
(rt)->NewString(values[i])) \
diff --git a/fxjs/cjs_publicmethods.cpp b/fxjs/cjs_publicmethods.cpp
index 503d868..89c6cfe 100644
--- a/fxjs/cjs_publicmethods.cpp
+++ b/fxjs/cjs_publicmethods.cpp
@@ -36,7 +36,6 @@
#include "fxjs/js_resources.h"
#include "third_party/abseil-cpp/absl/types/optional.h"
#include "third_party/base/check.h"
-#include "third_party/base/cxx17_backports.h"
#include "third_party/base/numerics/safe_conversions.h"
#include "v8/include/v8-container.h"
@@ -933,7 +932,7 @@
int nMonth = 1;
sTemp = wsArray[1];
- for (size_t i = 0; i < pdfium::size(fxjs::kMonths); ++i) {
+ for (size_t i = 0; i < std::size(fxjs::kMonths); ++i) {
if (sTemp == fxjs::kMonths[i]) {
nMonth = static_cast<int>(i) + 1;
break;
@@ -992,8 +991,8 @@
if (params.size() != 1)
return CJS_Result::Failure(JSMessage::kParamError);
- int iIndex = WithinBoundsOrZero(pRuntime->ToInt32(params[0]),
- pdfium::size(kDateFormats));
+ int iIndex =
+ WithinBoundsOrZero(pRuntime->ToInt32(params[0]), std::size(kDateFormats));
std::vector<v8::Local<v8::Value>> newParams;
newParams.push_back(pRuntime->NewString(kDateFormats[iIndex]));
return AFDate_FormatEx(pRuntime, newParams);
@@ -1006,8 +1005,8 @@
if (params.size() != 1)
return CJS_Result::Failure(JSMessage::kParamError);
- int iIndex = WithinBoundsOrZero(pRuntime->ToInt32(params[0]),
- pdfium::size(kDateFormats));
+ int iIndex =
+ WithinBoundsOrZero(pRuntime->ToInt32(params[0]), std::size(kDateFormats));
std::vector<v8::Local<v8::Value>> newParams;
newParams.push_back(pRuntime->NewString(kDateFormats[iIndex]));
return AFDate_KeystrokeEx(pRuntime, newParams);
@@ -1020,8 +1019,8 @@
if (params.size() != 1)
return CJS_Result::Failure(JSMessage::kParamError);
- int iIndex = WithinBoundsOrZero(pRuntime->ToInt32(params[0]),
- pdfium::size(kTimeFormats));
+ int iIndex =
+ WithinBoundsOrZero(pRuntime->ToInt32(params[0]), std::size(kTimeFormats));
std::vector<v8::Local<v8::Value>> newParams;
newParams.push_back(pRuntime->NewString(kTimeFormats[iIndex]));
return AFDate_FormatEx(pRuntime, newParams);
@@ -1033,8 +1032,8 @@
if (params.size() != 1)
return CJS_Result::Failure(JSMessage::kParamError);
- int iIndex = WithinBoundsOrZero(pRuntime->ToInt32(params[0]),
- pdfium::size(kTimeFormats));
+ int iIndex =
+ WithinBoundsOrZero(pRuntime->ToInt32(params[0]), std::size(kTimeFormats));
std::vector<v8::Local<v8::Value>> newParams;
newParams.push_back(pRuntime->NewString(kTimeFormats[iIndex]));
return AFDate_KeystrokeEx(pRuntime, newParams);
diff --git a/fxjs/cjs_publicmethods_unittest.cpp b/fxjs/cjs_publicmethods_unittest.cpp
index 95fdbd8..d6f0e08 100644
--- a/fxjs/cjs_publicmethods_unittest.cpp
+++ b/fxjs/cjs_publicmethods_unittest.cpp
@@ -4,8 +4,9 @@
#include "fxjs/cjs_publicmethods.h"
+#include <iterator>
+
#include "testing/gtest/include/gtest/gtest.h"
-#include "third_party/base/cxx17_backports.h"
TEST(CJS_PublicMethods, IsNumber) {
// TODO(weili): Check whether results from case 0, 1, 10, 15 are intended.
@@ -43,7 +44,7 @@
{L"0123", true},
{L"9876123", true},
};
- for (size_t i = 0; i < pdfium::size(test_data); ++i) {
+ for (size_t i = 0; i < std::size(test_data); ++i) {
EXPECT_EQ(test_data[i].expected,
CJS_PublicMethods::IsNumber(test_data[i].input))
<< "for case " << i;
diff --git a/fxjs/cjs_util.cpp b/fxjs/cjs_util.cpp
index 756ffb3..fb9fe7d 100644
--- a/fxjs/cjs_util.cpp
+++ b/fxjs/cjs_util.cpp
@@ -24,7 +24,6 @@
#include "fxjs/js_define.h"
#include "fxjs/js_resources.h"
#include "third_party/base/check_op.h"
-#include "third_party/base/cxx17_backports.h"
#include "v8/include/v8-date.h"
#if BUILDFLAG(IS_ANDROID)
@@ -217,7 +216,7 @@
cFormat.erase(std::remove(cFormat.begin(), cFormat.end(), '%'),
cFormat.end());
- for (size_t i = 0; i < pdfium::size(TbConvertTable); ++i) {
+ for (size_t i = 0; i < std::size(TbConvertTable); ++i) {
size_t nFound = 0;
while (true) {
nFound = cFormat.find(TbConvertTable[i].lpszJSMark, nFound);
@@ -238,7 +237,7 @@
{L'M', min}, {L's', sec},
};
- for (size_t i = 0; i < pdfium::size(cTableAd); ++i) {
+ for (size_t i = 0; i < std::size(cTableAd); ++i) {
size_t nFound = 0;
while (true) {
nFound = cFormat.find(cTableAd[i].js_mark, nFound);
diff --git a/fxjs/cjs_util_unittest.cpp b/fxjs/cjs_util_unittest.cpp
index 39b7318..832e0a5 100644
--- a/fxjs/cjs_util_unittest.cpp
+++ b/fxjs/cjs_util_unittest.cpp
@@ -4,8 +4,9 @@
#include "fxjs/cjs_util.h"
+#include <iterator>
+
#include "testing/gtest/include/gtest/gtest.h"
-#include "third_party/base/cxx17_backports.h"
TEST(CJS_Util, ParseDataType) {
struct ParseDataTypeCase {
@@ -105,7 +106,7 @@
{L"%10s", CJS_Util::DataType::kString},
};
- for (size_t i = 0; i < pdfium::size(cases); i++) {
+ for (size_t i = 0; i < std::size(cases); i++) {
WideString input(cases[i].input_string);
EXPECT_EQ(cases[i].expected, CJS_Util::ParseDataType(&input))
<< cases[i].input_string;
diff --git a/fxjs/fx_date_helpers.cpp b/fxjs/fx_date_helpers.cpp
index 77e9772..194797f 100644
--- a/fxjs/fx_date_helpers.cpp
+++ b/fxjs/fx_date_helpers.cpp
@@ -10,11 +10,12 @@
#include <time.h>
#include <wctype.h>
+#include <iterator>
+
#include "build/build_config.h"
#include "core/fxcrt/fx_extension.h"
#include "core/fxcrt/fx_system.h"
#include "fpdfsdk/cpdfsdk_helpers.h"
-#include "third_party/base/cxx17_backports.h"
namespace fxjs {
namespace {
@@ -114,7 +115,7 @@
// Check for February onwards.
static constexpr int kCumulativeDaysInMonths[] = {
59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365};
- for (size_t i = 0; i < pdfium::size(kCumulativeDaysInMonths); ++i) {
+ for (size_t i = 0; i < std::size(kCumulativeDaysInMonths); ++i) {
if (day < kCumulativeDaysInMonths[i])
return static_cast<int>(i) + 1;
}
@@ -434,7 +435,7 @@
nSkip = FindSubWordLength(value, j);
if (nSkip == KMonthAbbreviationLength) {
WideString sMonth = value.Substr(j, KMonthAbbreviationLength);
- for (size_t m = 0; m < pdfium::size(kMonths); ++m) {
+ for (size_t m = 0; m < std::size(kMonths); ++m) {
if (sMonth.CompareNoCase(kMonths[m]) == 0) {
nMonth = static_cast<int>(m) + 1;
i += 3;
@@ -471,7 +472,7 @@
if (nSkip <= kLongestFullMonthLength) {
WideString sMonth = value.Substr(j, nSkip);
sMonth.MakeLower();
- for (size_t m = 0; m < pdfium::size(kFullMonths); ++m) {
+ for (size_t m = 0; m < std::size(kFullMonths); ++m) {
WideString sFullMonths = WideString(kFullMonths[m]);
sFullMonths.MakeLower();
if (sFullMonths.Contains(sMonth.AsStringView())) {
diff --git a/fxjs/xfa/cfxjse_formcalc_context.cpp b/fxjs/xfa/cfxjse_formcalc_context.cpp
index a5a4650..7d6a5fe 100644
--- a/fxjs/xfa/cfxjse_formcalc_context.cpp
+++ b/fxjs/xfa/cfxjse_formcalc_context.cpp
@@ -299,7 +299,7 @@
255, 2, 255, 255, 255, 255, 255, 255, 255, 255, 255,
255, 255, 1, 255, 255, 255, 255, 255, 255, 255, 255,
};
-static_assert(pdfium::size(kAltTableDate) == L'a' - L'A' + 1,
+static_assert(std::size(kAltTableDate) == L'a' - L'A' + 1,
"Invalid kAltTableDate size.");
const uint8_t kAltTableTime[] = {
@@ -307,7 +307,7 @@
255, 6, 255, 255, 255, 255, 255, 7, 255, 255, 255,
255, 255, 1, 17, 255, 255, 255, 255, 255, 255, 255,
};
-static_assert(pdfium::size(kAltTableTime) == L'a' - L'A' + 1,
+static_assert(std::size(kAltTableTime) == L'a' - L'A' + 1,
"Invalid kAltTableTime size.");
void AlternateDateTimeSymbols(WideString* pPattern,
@@ -979,7 +979,7 @@
szEncode[3] = 0;
for (wchar_t ch : wsURL) {
size_t i = 0;
- size_t iCount = pdfium::size(kStrUnsafe);
+ size_t iCount = std::size(kStrUnsafe);
while (i < iCount) {
if (ch == kStrUnsafe[i]) {
int32_t iIndex = ch / 16;
@@ -994,7 +994,7 @@
continue;
i = 0;
- iCount = pdfium::size(kStrReserved);
+ iCount = std::size(kStrReserved);
while (i < iCount) {
if (ch == kStrReserved[i]) {
int32_t iIndex = ch / 16;
@@ -1009,7 +1009,7 @@
continue;
i = 0;
- iCount = pdfium::size(kStrSpecial);
+ iCount = std::size(kStrSpecial);
while (i < iCount) {
if (ch == kStrSpecial[i]) {
wsResultBuf.AppendChar(ch);
@@ -1667,14 +1667,14 @@
} // namespace
const FXJSE_CLASS_DESCRIPTOR kFormCalcDescriptor = {
- kClassTag, // tag
- "XFA_FormCalcClass", // name
- kFormCalcFunctions, // methods
- pdfium::size(kFormCalcFunctions), // number of methods
- nullptr, // dynamic prop type
- nullptr, // dynamic prop getter
- nullptr, // dynamic prop setter
- nullptr, // dynamic prop method call
+ kClassTag, // tag
+ "XFA_FormCalcClass", // name
+ kFormCalcFunctions, // methods
+ std::size(kFormCalcFunctions), // number of methods
+ nullptr, // dynamic prop type
+ nullptr, // dynamic prop getter
+ nullptr, // dynamic prop setter
+ nullptr, // dynamic prop method call
};
// static