Replace ContainsKey() and ContainsValue() with Contains().
Now that C++14 is available, update third_party/base/stl_util.h to be
better in sync with Chromium's copy.
Bug: pdfium:1435
Change-Id: Ie25a4dd01d2bff2f21a986a6a6b5e946403976df
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/69570
Commit-Queue: Lei Zhang <thestig@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
diff --git a/core/fpdfapi/edit/cpdf_creator.cpp b/core/fpdfapi/edit/cpdf_creator.cpp
index 67a3a1c..8e091f0 100644
--- a/core/fpdfapi/edit/cpdf_creator.cpp
+++ b/core/fpdfapi/edit/cpdf_creator.cpp
@@ -342,7 +342,7 @@
if (!m_IsIncremental || !m_pParser->IsXRefStream()) {
if (!m_IsIncremental || m_pParser->GetLastXRefOffset() == 0) {
ByteString str;
- str = pdfium::ContainsKey(m_ObjectOffsets, 1)
+ str = pdfium::Contains(m_ObjectOffsets, 1)
? "xref\r\n"
: "xref\r\n0 1\r\n0000000000 65535 f\r\n";
if (!m_Archive->WriteString(str.AsStringView()))
@@ -366,14 +366,14 @@
uint32_t i = m_CurObjNum;
uint32_t j;
while (i <= dwLastObjNum) {
- while (i <= dwLastObjNum && !pdfium::ContainsKey(m_ObjectOffsets, i))
+ while (i <= dwLastObjNum && !pdfium::Contains(m_ObjectOffsets, i))
i++;
if (i > dwLastObjNum)
break;
j = i;
- while (j <= dwLastObjNum && pdfium::ContainsKey(m_ObjectOffsets, j))
+ while (j <= dwLastObjNum && pdfium::Contains(m_ObjectOffsets, j))
j++;
if (i == 1)
@@ -522,7 +522,7 @@
if (m_IsIncremental && m_pParser && m_pParser->GetLastXRefOffset() == 0) {
uint32_t i = 0;
for (i = 0; i < m_dwLastObjNum; i++) {
- if (!pdfium::ContainsKey(m_ObjectOffsets, i))
+ if (!pdfium::Contains(m_ObjectOffsets, i))
continue;
if (!m_Archive->WriteDWord(i) || !m_Archive->WriteString(" 1 "))
return Stage::kInvalid;
diff --git a/core/fpdfapi/edit/cpdf_pagecontentgenerator.cpp b/core/fpdfapi/edit/cpdf_pagecontentgenerator.cpp
index 9a9785c..c972b74 100644
--- a/core/fpdfapi/edit/cpdf_pagecontentgenerator.cpp
+++ b/core/fpdfapi/edit/cpdf_pagecontentgenerator.cpp
@@ -129,7 +129,7 @@
// Finish dirty streams.
for (int32_t dirty_stream : all_dirty_streams) {
std::ostringstream* buf = streams[dirty_stream].get();
- if (pdfium::ContainsKey(empty_streams, dirty_stream)) {
+ if (pdfium::Contains(empty_streams, dirty_stream)) {
// Clear to show that this stream needs to be deleted.
buf->str("");
} else {
diff --git a/core/fpdfapi/font/cpdf_fontglobals.cpp b/core/fpdfapi/font/cpdf_fontglobals.cpp
index 10b6c5e..e44c188 100644
--- a/core/fpdfapi/font/cpdf_fontglobals.cpp
+++ b/core/fpdfapi/font/cpdf_fontglobals.cpp
@@ -67,7 +67,7 @@
void CPDF_FontGlobals::Set(CPDF_Document* pDoc,
CFX_FontMapper::StandardFont index,
const RetainPtr<CPDF_Font>& pFont) {
- if (!pdfium::ContainsKey(m_StockMap, pDoc))
+ if (!pdfium::Contains(m_StockMap, pDoc))
m_StockMap[pDoc] = pdfium::MakeUnique<CFX_StockFontArray>();
m_StockMap[pDoc]->SetFont(index, pFont);
}
diff --git a/core/fpdfapi/page/cpdf_colorspace.cpp b/core/fpdfapi/page/cpdf_colorspace.cpp
index b75e4ed..ba22433 100644
--- a/core/fpdfapi/page/cpdf_colorspace.cpp
+++ b/core/fpdfapi/page/cpdf_colorspace.cpp
@@ -487,7 +487,7 @@
if (!pObj)
return nullptr;
- if (pdfium::ContainsKey(*pVisited, pObj))
+ if (pdfium::Contains(*pVisited, pObj))
return nullptr;
pdfium::ScopedSetInsertion<const CPDF_Object*> insertion(pVisited, pObj);
diff --git a/core/fpdfapi/page/cpdf_docpagedata.cpp b/core/fpdfapi/page/cpdf_docpagedata.cpp
index 0306e42..2ccb676 100644
--- a/core/fpdfapi/page/cpdf_docpagedata.cpp
+++ b/core/fpdfapi/page/cpdf_docpagedata.cpp
@@ -258,7 +258,7 @@
if (!pCSObj)
return nullptr;
- if (pdfium::ContainsKey(*pVisitedInternal, pCSObj))
+ if (pdfium::Contains(*pVisitedInternal, pCSObj))
return nullptr;
pdfium::ScopedSetInsertion<const CPDF_Object*> insertion(pVisitedInternal,
diff --git a/core/fpdfapi/page/cpdf_function.cpp b/core/fpdfapi/page/cpdf_function.cpp
index 75e7710..6668673 100644
--- a/core/fpdfapi/page/cpdf_function.cpp
+++ b/core/fpdfapi/page/cpdf_function.cpp
@@ -50,7 +50,7 @@
if (!pFuncObj)
return nullptr;
- if (pdfium::ContainsKey(*pVisited, pFuncObj))
+ if (pdfium::Contains(*pVisited, pFuncObj))
return nullptr;
pdfium::ScopedSetInsertion<const CPDF_Object*> insertion(pVisited, pFuncObj);
diff --git a/core/fpdfapi/page/cpdf_page.cpp b/core/fpdfapi/page/cpdf_page.cpp
index 210f266..5946d9b 100644
--- a/core/fpdfapi/page/cpdf_page.cpp
+++ b/core/fpdfapi/page/cpdf_page.cpp
@@ -82,7 +82,7 @@
return pObj;
pPageDict = pPageDict->GetDictFor(pdfium::page_object::kParent);
- if (!pPageDict || pdfium::ContainsKey(visited, pPageDict))
+ if (!pPageDict || pdfium::Contains(visited, pPageDict))
break;
}
return nullptr;
diff --git a/core/fpdfapi/page/cpdf_streamcontentparser.cpp b/core/fpdfapi/page/cpdf_streamcontentparser.cpp
index 0f34b59..cf8b35a 100644
--- a/core/fpdfapi/page/cpdf_streamcontentparser.cpp
+++ b/core/fpdfapi/page/cpdf_streamcontentparser.cpp
@@ -1507,7 +1507,7 @@
m_StartParseOffset = start_offset;
if (m_ParsedSet->size() > kMaxFormLevel ||
- pdfium::ContainsKey(*m_ParsedSet, pDataStart)) {
+ pdfium::Contains(*m_ParsedSet, pDataStart)) {
return size_left;
}
diff --git a/core/fpdfapi/parser/cpdf_array.cpp b/core/fpdfapi/parser/cpdf_array.cpp
index 6cbad88..084724d 100644
--- a/core/fpdfapi/parser/cpdf_array.cpp
+++ b/core/fpdfapi/parser/cpdf_array.cpp
@@ -59,7 +59,7 @@
pVisited->insert(this);
auto pCopy = pdfium::MakeRetain<CPDF_Array>();
for (const auto& pValue : m_Objects) {
- if (!pdfium::ContainsKey(*pVisited, pValue.Get())) {
+ if (!pdfium::Contains(*pVisited, pValue.Get())) {
std::set<const CPDF_Object*> visited(*pVisited);
if (auto obj = pValue->CloneNonCyclic(bDirect, &visited))
pCopy->m_Objects.push_back(std::move(obj));
diff --git a/core/fpdfapi/parser/cpdf_cross_ref_table.cpp b/core/fpdfapi/parser/cpdf_cross_ref_table.cpp
index bd25b6c..d37259b 100644
--- a/core/fpdfapi/parser/cpdf_cross_ref_table.cpp
+++ b/core/fpdfapi/parser/cpdf_cross_ref_table.cpp
@@ -112,7 +112,7 @@
objects_info_.erase(objects_info_.lower_bound(objnum), objects_info_.end());
- if (!pdfium::ContainsKey(objects_info_, objnum - 1))
+ if (!pdfium::Contains(objects_info_, objnum - 1))
objects_info_[objnum - 1].pos = 0;
}
diff --git a/core/fpdfapi/parser/cpdf_data_avail.cpp b/core/fpdfapi/parser/cpdf_data_avail.cpp
index 38b363d..417fd72 100644
--- a/core/fpdfapi/parser/cpdf_data_avail.cpp
+++ b/core/fpdfapi/parser/cpdf_data_avail.cpp
@@ -797,7 +797,7 @@
m_bCurPageDictLoadOK = false;
}
- if (pdfium::ContainsKey(m_pagesLoadState, dwPage))
+ if (pdfium::Contains(m_pagesLoadState, dwPage))
return DataAvailable;
const HintsScope hints_scope(GetValidator(), pHints);
diff --git a/core/fpdfapi/parser/cpdf_dictionary.cpp b/core/fpdfapi/parser/cpdf_dictionary.cpp
index a8cc8eb..b85150c 100644
--- a/core/fpdfapi/parser/cpdf_dictionary.cpp
+++ b/core/fpdfapi/parser/cpdf_dictionary.cpp
@@ -74,7 +74,7 @@
auto pCopy = pdfium::MakeRetain<CPDF_Dictionary>(m_pPool);
CPDF_DictionaryLocker locker(this);
for (const auto& it : locker) {
- if (!pdfium::ContainsKey(*pVisited, it.second.Get())) {
+ if (!pdfium::Contains(*pVisited, it.second.Get())) {
std::set<const CPDF_Object*> visited(*pVisited);
if (auto obj = it.second->CloneNonCyclic(bDirect, &visited))
pCopy->m_Map.insert(std::make_pair(it.first, std::move(obj)));
@@ -193,7 +193,7 @@
}
bool CPDF_Dictionary::KeyExist(const ByteString& key) const {
- return pdfium::ContainsKey(m_Map, key);
+ return pdfium::Contains(m_Map, key);
}
std::vector<ByteString> CPDF_Dictionary::GetKeys() const {
diff --git a/core/fpdfapi/parser/cpdf_document.cpp b/core/fpdfapi/parser/cpdf_document.cpp
index e4f246c..3bf1006 100644
--- a/core/fpdfapi/parser/cpdf_document.cpp
+++ b/core/fpdfapi/parser/cpdf_document.cpp
@@ -34,7 +34,7 @@
count = 0;
for (size_t i = 0; i < pKidList->size(); i++) {
CPDF_Dictionary* pKid = pKidList->GetDictAt(i);
- if (!pKid || pdfium::ContainsKey(*visited_pages, pKid))
+ if (!pKid || pdfium::Contains(*visited_pages, pKid))
continue;
if (pKid->KeyExist("Kids")) {
// Use |visited_pages| to help detect circular references of pages.
@@ -413,7 +413,7 @@
nPagesToGo -= nPages;
continue;
}
- if (pdfium::ContainsKey(*pVisited, pKid))
+ if (pdfium::Contains(*pVisited, pKid))
return false;
pdfium::ScopedSetInsertion<CPDF_Dictionary*> insertion(pVisited, pKid);
diff --git a/core/fpdfapi/parser/cpdf_object_stream.cpp b/core/fpdfapi/parser/cpdf_object_stream.cpp
index a515dbb..4df3d16 100644
--- a/core/fpdfapi/parser/cpdf_object_stream.cpp
+++ b/core/fpdfapi/parser/cpdf_object_stream.cpp
@@ -74,7 +74,7 @@
CPDF_ObjectStream::~CPDF_ObjectStream() = default;
bool CPDF_ObjectStream::HasObject(uint32_t obj_number) const {
- return pdfium::ContainsKey(objects_offsets_, obj_number);
+ return pdfium::Contains(objects_offsets_, obj_number);
}
RetainPtr<CPDF_Object> CPDF_ObjectStream::ParseObject(
diff --git a/core/fpdfapi/parser/cpdf_parser.cpp b/core/fpdfapi/parser/cpdf_parser.cpp
index 425ba6c..3ae3aec 100644
--- a/core/fpdfapi/parser/cpdf_parser.cpp
+++ b/core/fpdfapi/parser/cpdf_parser.cpp
@@ -306,7 +306,7 @@
xref_offset = GetDirectInteger(GetTrailer(), "Prev");
while (xref_offset) {
// Check for circular references.
- if (pdfium::ContainsKey(seen_xref_offset, xref_offset))
+ if (pdfium::Contains(seen_xref_offset, xref_offset))
return false;
seen_xref_offset.insert(xref_offset);
@@ -373,7 +373,7 @@
FX_FILESIZE xref_offset = GetDirectInteger(GetTrailer(), "Prev");
while (xref_offset) {
// Check for circular references.
- if (pdfium::ContainsKey(seen_xref_offset, xref_offset))
+ if (pdfium::Contains(seen_xref_offset, xref_offset))
return false;
seen_xref_offset.insert(xref_offset);
@@ -574,7 +574,7 @@
return false;
// Check for circular references.
- if (pdfium::ContainsKey(seen_xref_offset, xref_offset))
+ if (pdfium::Contains(seen_xref_offset, xref_offset))
return false;
}
m_ObjectStreamMap.clear();
@@ -860,7 +860,7 @@
return nullptr;
// Prevent circular parsing the same object.
- if (pdfium::ContainsKey(m_ParsingObjNums, objnum))
+ if (pdfium::Contains(m_ParsingObjNums, objnum))
return nullptr;
pdfium::ScopedSetInsertion<uint32_t> local_insert(&m_ParsingObjNums, objnum);
@@ -883,7 +883,7 @@
const CPDF_ObjectStream* CPDF_Parser::GetObjectStream(uint32_t object_number) {
// Prevent circular parsing the same object.
- if (pdfium::ContainsKey(m_ParsingObjNums, object_number))
+ if (pdfium::Contains(m_ParsingObjNums, object_number))
return nullptr;
pdfium::ScopedSetInsertion<uint32_t> local_insert(&m_ParsingObjNums,
@@ -1049,7 +1049,7 @@
return false;
// Check for circular references.
- if (pdfium::ContainsKey(seen_xref_offset, xref_offset))
+ if (pdfium::Contains(seen_xref_offset, xref_offset))
return false;
}
m_ObjectStreamMap.clear();
diff --git a/core/fpdfapi/parser/cpdf_reference.cpp b/core/fpdfapi/parser/cpdf_reference.cpp
index d50db34..190a3a2 100644
--- a/core/fpdfapi/parser/cpdf_reference.cpp
+++ b/core/fpdfapi/parser/cpdf_reference.cpp
@@ -67,7 +67,7 @@
pVisited->insert(this);
if (bDirect) {
auto* pDirect = GetDirect();
- return pDirect && !pdfium::ContainsKey(*pVisited, pDirect)
+ return pDirect && !pdfium::Contains(*pVisited, pDirect)
? pDirect->CloneNonCyclic(true, pVisited)
: nullptr;
}
diff --git a/core/fpdfapi/parser/cpdf_stream.cpp b/core/fpdfapi/parser/cpdf_stream.cpp
index 3c452d7..72e36f3 100644
--- a/core/fpdfapi/parser/cpdf_stream.cpp
+++ b/core/fpdfapi/parser/cpdf_stream.cpp
@@ -100,7 +100,7 @@
uint32_t streamSize = pAcc->GetSize();
const CPDF_Dictionary* pDict = GetDict();
RetainPtr<CPDF_Dictionary> pNewDict;
- if (pDict && !pdfium::ContainsKey(*pVisited, pDict)) {
+ if (pDict && !pdfium::Contains(*pVisited, pDict)) {
pNewDict =
ToDictionary(static_cast<const CPDF_Object*>(pDict)->CloneNonCyclic(
bDirect, pVisited));
diff --git a/core/fpdfapi/parser/fpdf_parser_decode.cpp b/core/fpdfapi/parser/fpdf_parser_decode.cpp
index 9a12065..ae5d5f2 100644
--- a/core/fpdfapi/parser/fpdf_parser_decode.cpp
+++ b/core/fpdfapi/parser/fpdf_parser_decode.cpp
@@ -105,7 +105,7 @@
"FlateDecode", "Fl", "LZWDecode", "LZW", "ASCII85Decode", "A85",
"ASCIIHexDecode", "AHx", "RunLengthDecode", "RL"};
for (size_t i = 0; i < count - 1; ++i) {
- if (!pdfium::ContainsValue(kValidDecoders, pDecoders->GetStringAt(i)))
+ if (!pdfium::Contains(kValidDecoders, pDecoders->GetStringAt(i)))
return false;
}
return true;
diff --git a/core/fpdfapi/render/cpdf_renderstatus.cpp b/core/fpdfapi/render/cpdf_renderstatus.cpp
index 2a1fae7..f7ef050 100644
--- a/core/fpdfapi/render/cpdf_renderstatus.cpp
+++ b/core/fpdfapi/render/cpdf_renderstatus.cpp
@@ -955,7 +955,7 @@
bool CPDF_RenderStatus::ProcessType3Text(CPDF_TextObject* textobj,
const CFX_Matrix& mtObj2Device) {
CPDF_Type3Font* pType3Font = textobj->m_TextState.GetFont()->AsType3Font();
- if (pdfium::ContainsValue(m_Type3FontCache, pType3Font))
+ if (pdfium::Contains(m_Type3FontCache, pType3Font))
return true;
DeviceType device_type = m_pDevice->GetDeviceType();
diff --git a/core/fpdfdoc/cpdf_formfield.cpp b/core/fpdfdoc/cpdf_formfield.cpp
index 2d18612..c87bcfa 100644
--- a/core/fpdfdoc/cpdf_formfield.cpp
+++ b/core/fpdfdoc/cpdf_formfield.cpp
@@ -87,7 +87,7 @@
full_name = short_name + L'.' + full_name;
}
pLevel = pLevel->GetDictFor(pdfium::form_fields::kParent);
- if (pdfium::ContainsKey(visited, pLevel))
+ if (pdfium::Contains(visited, pLevel))
break;
}
return full_name;
@@ -902,7 +902,7 @@
if (index < 0 || index >= num_options)
return false;
- return pdfium::ContainsKey(values, GetOptionValue(index));
+ return pdfium::Contains(values, GetOptionValue(index));
}
void CPDF_FormField::LoadDA() {
diff --git a/core/fpdfdoc/cpdf_formfield_unittest.cpp b/core/fpdfdoc/cpdf_formfield_unittest.cpp
index 4194fbf..775adfb 100644
--- a/core/fpdfdoc/cpdf_formfield_unittest.cpp
+++ b/core/fpdfdoc/cpdf_formfield_unittest.cpp
@@ -63,7 +63,7 @@
CPDF_FormField form_field(&form, form_dict.Get());
EXPECT_EQ(expected_use_indices, form_field.UseSelectedIndicesObject());
for (int i = 0; i < form_field.CountOptions(); i++) {
- const bool expected_selected = pdfium::ContainsValue(expected_indices, i);
+ const bool expected_selected = pdfium::Contains(expected_indices, i);
EXPECT_EQ(expected_selected, form_field.IsItemSelected(i));
}
for (int i : excluded_indices) {
diff --git a/core/fpdfdoc/cpdf_interactiveform.cpp b/core/fpdfdoc/cpdf_interactiveform.cpp
index b76be9a..3015545 100644
--- a/core/fpdfdoc/cpdf_interactiveform.cpp
+++ b/core/fpdfdoc/cpdf_interactiveform.cpp
@@ -808,7 +808,7 @@
if (!pField)
continue;
- if (bIncludeOrExclude == pdfium::ContainsValue(fields, pField))
+ if (bIncludeOrExclude == pdfium::Contains(fields, pField))
pField->ResetField(notify);
}
if (notify == NotificationOption::kNotify && m_pFormNotify)
@@ -983,7 +983,7 @@
bool bFind = true;
if (fields)
- bFind = pdfium::ContainsValue(*fields, pField);
+ bFind = pdfium::Contains(*fields, pField);
if (bIncludeOrExclude == bFind) {
const CPDF_Dictionary* pFieldDict = pField->GetDict();
if (pField->IsRequired() &&
@@ -1041,7 +1041,7 @@
if (dwFlags & 0x04)
continue;
- if (bIncludeOrExclude != pdfium::ContainsValue(fields, pField))
+ if (bIncludeOrExclude != pdfium::Contains(fields, pField))
continue;
if ((dwFlags & 0x02) != 0 &&
diff --git a/core/fxcrt/bytestring_unittest.cpp b/core/fxcrt/bytestring_unittest.cpp
index 3452a1e..ec89df2 100644
--- a/core/fxcrt/bytestring_unittest.cpp
+++ b/core/fxcrt/bytestring_unittest.cpp
@@ -1622,9 +1622,9 @@
EXPECT_TRUE(std::any_of(str.begin(), str.end(),
[](const char& c) { return c == 'a'; }));
- EXPECT_TRUE(pdfium::ContainsValue(str, 'a'));
- EXPECT_TRUE(pdfium::ContainsValue(str, 'b'));
- EXPECT_FALSE(pdfium::ContainsValue(str, 'z'));
+ EXPECT_TRUE(pdfium::Contains(str, 'a'));
+ EXPECT_TRUE(pdfium::Contains(str, 'b'));
+ EXPECT_FALSE(pdfium::Contains(str, 'z'));
}
TEST(ByteString, FormatWidth) {
@@ -1739,9 +1739,9 @@
EXPECT_TRUE(std::any_of(str.begin(), str.end(),
[](const char& c) { return c == 'a'; }));
- EXPECT_TRUE(pdfium::ContainsValue(str, 'a'));
- EXPECT_TRUE(pdfium::ContainsValue(str, 'b'));
- EXPECT_FALSE(pdfium::ContainsValue(str, 'z'));
+ EXPECT_TRUE(pdfium::Contains(str, 'a'));
+ EXPECT_TRUE(pdfium::Contains(str, 'b'));
+ EXPECT_FALSE(pdfium::Contains(str, 'z'));
}
TEST(CFX_BytrString, EqualNoCase) {
diff --git a/core/fxcrt/observed_ptr.cpp b/core/fxcrt/observed_ptr.cpp
index dae2244..1a9f5af 100644
--- a/core/fxcrt/observed_ptr.cpp
+++ b/core/fxcrt/observed_ptr.cpp
@@ -15,12 +15,12 @@
}
void Observable::AddObserver(ObserverIface* pObserver) {
- ASSERT(!pdfium::ContainsKey(m_Observers, pObserver));
+ ASSERT(!pdfium::Contains(m_Observers, pObserver));
m_Observers.insert(pObserver);
}
void Observable::RemoveObserver(ObserverIface* pObserver) {
- ASSERT(pdfium::ContainsKey(m_Observers, pObserver));
+ ASSERT(pdfium::Contains(m_Observers, pObserver));
m_Observers.erase(pObserver);
}
diff --git a/core/fxcrt/widestring_unittest.cpp b/core/fxcrt/widestring_unittest.cpp
index 08d061f..084393e 100644
--- a/core/fxcrt/widestring_unittest.cpp
+++ b/core/fxcrt/widestring_unittest.cpp
@@ -1602,9 +1602,9 @@
EXPECT_TRUE(std::any_of(str.begin(), str.end(),
[](const wchar_t& c) { return c == L'a'; }));
- EXPECT_TRUE(pdfium::ContainsValue(str, L'a'));
- EXPECT_TRUE(pdfium::ContainsValue(str, L'b'));
- EXPECT_FALSE(pdfium::ContainsValue(str, L'z'));
+ EXPECT_TRUE(pdfium::Contains(str, L'a'));
+ EXPECT_TRUE(pdfium::Contains(str, L'b'));
+ EXPECT_FALSE(pdfium::Contains(str, L'z'));
}
TEST(WideStringView, TrimmedRight) {
@@ -1742,9 +1742,9 @@
EXPECT_TRUE(std::any_of(str.begin(), str.end(),
[](const wchar_t& c) { return c == L'a'; }));
- EXPECT_TRUE(pdfium::ContainsValue(str, L'a'));
- EXPECT_TRUE(pdfium::ContainsValue(str, L'b'));
- EXPECT_FALSE(pdfium::ContainsValue(str, L'z'));
+ EXPECT_TRUE(pdfium::Contains(str, L'a'));
+ EXPECT_TRUE(pdfium::Contains(str, L'b'));
+ EXPECT_FALSE(pdfium::Contains(str, L'z'));
}
TEST(WideString, OStreamOverload) {
diff --git a/core/fxge/cfx_folderfontinfo.cpp b/core/fxge/cfx_folderfontinfo.cpp
index c0dbcc7..92517c5 100644
--- a/core/fxge/cfx_folderfontinfo.cpp
+++ b/core/fxge/cfx_folderfontinfo.cpp
@@ -241,7 +241,7 @@
if (style != "Regular")
facename += " " + style;
- if (pdfium::ContainsKey(m_FontList, facename))
+ if (pdfium::Contains(m_FontList, facename))
return;
auto pInfo = pdfium::MakeUnique<FontFaceInfo>(path, facename, tables, offset,
diff --git a/fpdfsdk/cpdfsdk_actionhandler.cpp b/fpdfsdk/cpdfsdk_actionhandler.cpp
index 356cc14..1cc0ce2 100644
--- a/fpdfsdk/cpdfsdk_actionhandler.cpp
+++ b/fpdfsdk/cpdfsdk_actionhandler.cpp
@@ -135,7 +135,7 @@
CPDFSDK_FormFillEnvironment* pFormFillEnv,
std::set<const CPDF_Dictionary*>* visited) {
const CPDF_Dictionary* pDict = action.GetDict();
- if (pdfium::ContainsKey(*visited, pDict))
+ if (pdfium::Contains(*visited, pDict))
return false;
visited->insert(pDict);
@@ -167,7 +167,7 @@
CPDFSDK_FormFillEnvironment* pFormFillEnv,
std::set<const CPDF_Dictionary*>* visited) {
const CPDF_Dictionary* pDict = action.GetDict();
- if (pdfium::ContainsKey(*visited, pDict))
+ if (pdfium::Contains(*visited, pDict))
return false;
visited->insert(pDict);
@@ -212,7 +212,7 @@
CPDFSDK_FieldAction* data,
std::set<const CPDF_Dictionary*>* visited) {
const CPDF_Dictionary* pDict = action.GetDict();
- if (pdfium::ContainsKey(*visited, pDict))
+ if (pdfium::Contains(*visited, pDict))
return false;
visited->insert(pDict);
diff --git a/fpdfsdk/cpdfsdk_annotiterator.cpp b/fpdfsdk/cpdfsdk_annotiterator.cpp
index 36a13bb..5827a42 100644
--- a/fpdfsdk/cpdfsdk_annotiterator.cpp
+++ b/fpdfsdk/cpdfsdk_annotiterator.cpp
@@ -84,7 +84,7 @@
void CPDFSDK_AnnotIterator::CollectAnnots(std::vector<CPDFSDK_Annot*>* pArray) {
for (auto* pAnnot : m_pPageView->GetAnnotList()) {
- if (pdfium::ContainsValue(m_subtypes, pAnnot->GetAnnotSubtype()) &&
+ if (pdfium::Contains(m_subtypes, pAnnot->GetAnnotSubtype()) &&
!pAnnot->IsSignatureWidget()) {
pArray->push_back(pAnnot);
}
diff --git a/fpdfsdk/cpdfsdk_baannothandler.cpp b/fpdfsdk/cpdfsdk_baannothandler.cpp
index a3981b1..2f092e3 100644
--- a/fpdfsdk/cpdfsdk_baannothandler.cpp
+++ b/fpdfsdk/cpdfsdk_baannothandler.cpp
@@ -211,8 +211,8 @@
const CPDF_Annot::Subtype& annot_type) const {
ASSERT(annot_type != CPDF_Annot::Subtype::WIDGET);
- return pdfium::ContainsValue(
- form_fill_environment_->GetFocusableAnnotSubtypes(), annot_type);
+ return pdfium::Contains(form_fill_environment_->GetFocusableAnnotSubtypes(),
+ annot_type);
}
void CPDFSDK_BAAnnotHandler::InvalidateRect(CPDFSDK_Annot* annot) {
diff --git a/fpdfsdk/cpdfsdk_pageview.cpp b/fpdfsdk/cpdfsdk_pageview.cpp
index e5d0d63..3fa9d81 100644
--- a/fpdfsdk/cpdfsdk_pageview.cpp
+++ b/fpdfsdk/cpdfsdk_pageview.cpp
@@ -562,7 +562,7 @@
bool CPDFSDK_PageView::IsValidSDKAnnot(const CPDFSDK_Annot* p) const {
if (!p)
return false;
- return pdfium::ContainsValue(m_SDKAnnotArray, p);
+ return pdfium::Contains(m_SDKAnnotArray, p);
}
CPDFSDK_Annot* CPDFSDK_PageView::GetFocusAnnot() {
diff --git a/fpdfsdk/cpdfsdk_widgethandler.cpp b/fpdfsdk/cpdfsdk_widgethandler.cpp
index a4222cf..1e92872 100644
--- a/fpdfsdk/cpdfsdk_widgethandler.cpp
+++ b/fpdfsdk/cpdfsdk_widgethandler.cpp
@@ -306,6 +306,6 @@
const CPDF_Annot::Subtype& annot_type) const {
ASSERT(annot_type == CPDF_Annot::Subtype::WIDGET);
- return pdfium::ContainsValue(m_pFormFillEnv->GetFocusableAnnotSubtypes(),
- annot_type);
+ return pdfium::Contains(m_pFormFillEnv->GetFocusableAnnotSubtypes(),
+ annot_type);
}
diff --git a/fpdfsdk/fpdf_annot_embeddertest.cpp b/fpdfsdk/fpdf_annot_embeddertest.cpp
index a2d280f..55d7a74 100644
--- a/fpdfsdk/fpdf_annot_embeddertest.cpp
+++ b/fpdfsdk/fpdf_annot_embeddertest.cpp
@@ -83,8 +83,8 @@
ASSERT_TRUE(annot);
EXPECT_EQ(expected_subtypes[i], FPDFAnnot_GetSubtype(annot.get()));
- bool expected_focusable = pdfium::ContainsValue(expected_focusable_subtypes,
- expected_subtypes[i]);
+ bool expected_focusable =
+ pdfium::Contains(expected_focusable_subtypes, expected_subtypes[i]);
EXPECT_EQ(expected_focusable,
FORM_SetFocusedAnnot(form_handle, annot.get()));
diff --git a/fpdfsdk/fpdf_doc.cpp b/fpdfsdk/fpdf_doc.cpp
index 350d1aa..add8825 100644
--- a/fpdfsdk/fpdf_doc.cpp
+++ b/fpdfsdk/fpdf_doc.cpp
@@ -33,7 +33,7 @@
const WideString& title,
std::set<const CPDF_Dictionary*>* visited) {
// Return if already checked to avoid circular calling.
- if (pdfium::ContainsKey(*visited, bookmark.GetDict()))
+ if (pdfium::Contains(*visited, bookmark.GetDict()))
return CPDF_Bookmark();
visited->insert(bookmark.GetDict());
@@ -45,7 +45,7 @@
// Go into children items.
CPDF_Bookmark child = tree.GetFirstChild(&bookmark);
- while (child.GetDict() && !pdfium::ContainsKey(*visited, child.GetDict())) {
+ while (child.GetDict() && !pdfium::Contains(*visited, child.GetDict())) {
// Check this item and its children.
CPDF_Bookmark found = FindBookmark(tree, child, title, visited);
if (found.GetDict())
diff --git a/fpdfsdk/fpdf_edittext.cpp b/fpdfsdk/fpdf_edittext.cpp
index 3dc4334..f7580be 100644
--- a/fpdfsdk/fpdf_edittext.cpp
+++ b/fpdfsdk/fpdf_edittext.cpp
@@ -367,7 +367,7 @@
if (dwCurrentChar > kMaxUnicode)
break;
- if (!pdfium::ContainsKey(widths, dwGlyphIndex))
+ if (!pdfium::Contains(widths, dwGlyphIndex))
widths[dwGlyphIndex] = pFont->GetGlyphWidth(dwGlyphIndex);
to_unicode[dwGlyphIndex] = dwCurrentChar;
dwCurrentChar =
diff --git a/fpdfsdk/fpdf_sysfontinfo_embeddertest.cpp b/fpdfsdk/fpdf_sysfontinfo_embeddertest.cpp
index a1c1510..e67ec55 100644
--- a/fpdfsdk/fpdf_sysfontinfo_embeddertest.cpp
+++ b/fpdfsdk/fpdf_sysfontinfo_embeddertest.cpp
@@ -142,7 +142,7 @@
// Stop at either end mark.
while (cfmap->charset != -1 && cfmap->fontname) {
// Only returns values described as legitimate in public header.
- EXPECT_TRUE(pdfium::ContainsValue(kAllowedCharsets, cfmap->charset))
+ EXPECT_TRUE(pdfium::Contains(kAllowedCharsets, cfmap->charset))
<< " for " << cfmap->charset;
// Duplicates are not allowed.
diff --git a/fpdfsdk/pwl/cpwl_wnd.cpp b/fpdfsdk/pwl/cpwl_wnd.cpp
index 7010d13..c230ff5 100644
--- a/fpdfsdk/pwl/cpwl_wnd.cpp
+++ b/fpdfsdk/pwl/cpwl_wnd.cpp
@@ -40,7 +40,7 @@
}
bool IsWndCaptureMouse(const CPWL_Wnd* pWnd) const {
- return pWnd && pdfium::ContainsValue(m_aMousePath, pWnd);
+ return pWnd && pdfium::Contains(m_aMousePath, pWnd);
}
bool IsMainCaptureKeyboard(const CPWL_Wnd* pWnd) const {
@@ -48,7 +48,7 @@
}
bool IsWndCaptureKeyboard(const CPWL_Wnd* pWnd) const {
- return pWnd && pdfium::ContainsValue(m_aKeyboardPath, pWnd);
+ return pWnd && pdfium::Contains(m_aKeyboardPath, pWnd);
}
void SetFocus(CPWL_Wnd* pWnd) {
diff --git a/fxbarcode/oned/BC_OnedCodaBarWriter.cpp b/fxbarcode/oned/BC_OnedCodaBarWriter.cpp
index 2021a8a..f7a7615 100644
--- a/fxbarcode/oned/BC_OnedCodaBarWriter.cpp
+++ b/fxbarcode/oned/BC_OnedCodaBarWriter.cpp
@@ -55,7 +55,7 @@
CBC_OnedCodaBarWriter::~CBC_OnedCodaBarWriter() = default;
bool CBC_OnedCodaBarWriter::SetStartChar(char start) {
- if (!pdfium::ContainsValue(kStartEndChars, start))
+ if (!pdfium::Contains(kStartEndChars, start))
return false;
m_chStart = start;
@@ -63,7 +63,7 @@
}
bool CBC_OnedCodaBarWriter::SetEndChar(char end) {
- if (!pdfium::ContainsValue(kStartEndChars, end))
+ if (!pdfium::Contains(kStartEndChars, end))
return false;
m_chEnd = end;
@@ -95,8 +95,8 @@
return false;
char narrow_ch = static_cast<char>(ch);
- return pdfium::ContainsValue(kCOntentChars, narrow_ch) ||
- (isContent && pdfium::ContainsValue(kStartEndChars, narrow_ch));
+ return pdfium::Contains(kCOntentChars, narrow_ch) ||
+ (isContent && pdfium::Contains(kStartEndChars, narrow_ch));
}
bool CBC_OnedCodaBarWriter::CheckContentValidity(WideStringView contents) {
diff --git a/fxjs/global_timer.cpp b/fxjs/global_timer.cpp
index 2d5ca17..ded2596 100644
--- a/fxjs/global_timer.cpp
+++ b/fxjs/global_timer.cpp
@@ -36,7 +36,7 @@
m_pRuntime(pRuntime),
m_pEmbedApp(pObj) {
if (HasValidID()) {
- ASSERT(!pdfium::ContainsKey(GetGlobalTimerMap(), m_nTimerID));
+ ASSERT(!pdfium::Contains(GetGlobalTimerMap(), m_nTimerID));
GetGlobalTimerMap()[m_nTimerID] = this;
}
}
@@ -48,7 +48,7 @@
if (m_pRuntime && m_pRuntime->GetTimerHandler())
m_pRuntime->GetTimerHandler()->KillTimer(m_nTimerID);
- ASSERT(pdfium::ContainsKey(GetGlobalTimerMap(), m_nTimerID));
+ ASSERT(pdfium::Contains(GetGlobalTimerMap(), m_nTimerID));
GetGlobalTimerMap().erase(m_nTimerID);
}
diff --git a/fxjs/xfa/cfxjse_engine.cpp b/fxjs/xfa/cfxjse_engine.cpp
index ffcd55d..fe25f68 100644
--- a/fxjs/xfa/cfxjse_engine.cpp
+++ b/fxjs/xfa/cfxjse_engine.cpp
@@ -805,7 +805,7 @@
}
void CFXJSE_Engine::AddNodesOfRunScript(CXFA_Node* pNode) {
- if (m_pScriptNodeArray && !pdfium::ContainsValue(*m_pScriptNodeArray, pNode))
+ if (m_pScriptNodeArray && !pdfium::Contains(*m_pScriptNodeArray, pNode))
m_pScriptNodeArray->push_back(pNode);
}
diff --git a/fxjs/xfa/cfxjse_resolveprocessor.cpp b/fxjs/xfa/cfxjse_resolveprocessor.cpp
index 89883d6..ec59df8 100644
--- a/fxjs/xfa/cfxjse_resolveprocessor.cpp
+++ b/fxjs/xfa/cfxjse_resolveprocessor.cpp
@@ -220,8 +220,7 @@
if (rndFind.m_Objects.empty())
return false;
- if (wsCondition.IsEmpty() &&
- pdfium::ContainsValue(rndFind.m_Objects, curNode)) {
+ if (wsCondition.IsEmpty() && pdfium::Contains(rndFind.m_Objects, curNode)) {
rnd.m_Objects.emplace_back(curNode);
} else {
rnd.m_Objects.insert(rnd.m_Objects.end(), rndFind.m_Objects.begin(),
diff --git a/fxjs/xfa/cjx_layoutpseudomodel.cpp b/fxjs/xfa/cjx_layoutpseudomodel.cpp
index 35852a8..493f7e3 100644
--- a/fxjs/xfa/cjx_layoutpseudomodel.cpp
+++ b/fxjs/xfa/cjx_layoutpseudomodel.cpp
@@ -261,7 +261,7 @@
eType != XFA_Element::Subform && eType != XFA_Element::Area) {
continue;
}
- if (pdfium::ContainsValue(formItems, pItemChild->GetFormNode()))
+ if (pdfium::Contains(formItems, pItemChild->GetFormNode()))
continue;
formItems.insert(pItemChild->GetFormNode());
@@ -282,7 +282,7 @@
eType != XFA_Element::Subform && eType != XFA_Element::Area) {
continue;
}
- if (pdfium::ContainsValue(formItems, pItemChild->GetFormNode()))
+ if (pdfium::Contains(formItems, pItemChild->GetFormNode()))
continue;
formItems.insert(pItemChild->GetFormNode());
@@ -317,7 +317,7 @@
continue;
if (pItemChild->GetFormNode()->GetElementType() != eType)
continue;
- if (pdfium::ContainsValue(formItems, pItemChild->GetFormNode()))
+ if (pdfium::Contains(formItems, pItemChild->GetFormNode()))
continue;
formItems.insert(pItemChild->GetFormNode());
@@ -334,7 +334,7 @@
continue;
if (pItemChild->GetFormNode()->GetElementType() != eType)
continue;
- if (pdfium::ContainsValue(formItems, pItemChild->GetFormNode()))
+ if (pdfium::Contains(formItems, pItemChild->GetFormNode()))
continue;
formItems.insert(pItemChild->GetFormNode());
diff --git a/fxjs/xfa/cjx_object.cpp b/fxjs/xfa/cjx_object.cpp
index e62ad86..9aaeaad 100644
--- a/fxjs/xfa/cjx_object.cpp
+++ b/fxjs/xfa/cjx_object.cpp
@@ -165,7 +165,7 @@
}
bool CJX_Object::HasMethod(const WideString& func) const {
- return pdfium::ContainsKey(method_specs_, func.ToUTF8());
+ return pdfium::Contains(method_specs_, func.ToUTF8());
}
CJS_Result CJX_Object::RunMethod(
@@ -921,8 +921,8 @@
bool CJX_Object::HasMapModuleKey(void* pKey) {
XFA_MAPMODULEDATA* pModule = GetMapModuleData();
- return pModule && (pdfium::ContainsKey(pModule->m_ValueMap, pKey) ||
- pdfium::ContainsKey(pModule->m_BufferMap, pKey));
+ return pModule && (pdfium::Contains(pModule->m_ValueMap, pKey) ||
+ pdfium::Contains(pModule->m_BufferMap, pKey));
}
void CJX_Object::ClearMapModuleBuffer() {
diff --git a/testing/embedder_test.cpp b/testing/embedder_test.cpp
index a85f5c6..a04e597 100644
--- a/testing/embedder_test.cpp
+++ b/testing/embedder_test.cpp
@@ -297,7 +297,7 @@
FPDF_PAGE EmbedderTest::LoadPageCommon(int page_number, bool do_events) {
ASSERT(form_handle_);
ASSERT(page_number >= 0);
- ASSERT(!pdfium::ContainsKey(page_map_, page_number));
+ ASSERT(!pdfium::Contains(page_map_, page_number));
FPDF_PAGE page = FPDF_LoadPage(document_, page_number);
if (!page)
@@ -501,7 +501,7 @@
FPDF_PAGE EmbedderTest::LoadSavedPage(int page_number) {
ASSERT(saved_form_handle_);
ASSERT(page_number >= 0);
- ASSERT(!pdfium::ContainsKey(saved_page_map_, page_number));
+ ASSERT(!pdfium::Contains(saved_page_map_, page_number));
FPDF_PAGE page = FPDF_LoadPage(saved_document_, page_number);
if (!page)
diff --git a/third_party/base/stl_util.h b/third_party/base/stl_util.h
index 925c96a..cefd0e3 100644
--- a/third_party/base/stl_util.h
+++ b/third_party/base/stl_util.h
@@ -9,14 +9,52 @@
#include <iterator>
#include <memory>
#include <set>
+#include <type_traits>
#include <vector>
#include "third_party/base/numerics/safe_conversions.h"
#include "third_party/base/numerics/safe_math.h"
+#include "third_party/base/template_util.h"
namespace pdfium {
-// C++11 implementation of C++17's std::size():
+namespace internal {
+
+// Utility type traits used for specializing base::Contains() below.
+template <typename Container, typename Element, typename = void>
+struct HasFindWithNpos : std::false_type {};
+
+template <typename Container, typename Element>
+struct HasFindWithNpos<
+ Container,
+ Element,
+ void_t<decltype(std::declval<const Container&>().find(
+ std::declval<const Element&>()) != Container::npos)>>
+ : std::true_type {};
+
+template <typename Container, typename Element, typename = void>
+struct HasFindWithEnd : std::false_type {};
+
+template <typename Container, typename Element>
+struct HasFindWithEnd<Container,
+ Element,
+ void_t<decltype(std::declval<const Container&>().find(
+ std::declval<const Element&>()) !=
+ std::declval<const Container&>().end())>>
+ : std::true_type {};
+
+template <typename Container, typename Element, typename = void>
+struct HasContains : std::false_type {};
+
+template <typename Container, typename Element>
+struct HasContains<Container,
+ Element,
+ void_t<decltype(std::declval<const Container&>().contains(
+ std::declval<const Element&>()))>> : std::true_type {};
+
+} // namespace internal
+
+// C++14 implementation of C++17's std::size():
// http://en.cppreference.com/w/cpp/iterator/size
template <typename Container>
constexpr auto size(const Container& c) -> decltype(c.size()) {
@@ -28,19 +66,49 @@
return N;
}
-// Test to see if a set, map, hash_set or hash_map contains a particular key.
-// Returns true if the key is in the collection.
-template <typename Collection, typename Key>
-bool ContainsKey(const Collection& collection, const Key& key) {
- return collection.find(key) != collection.end();
+// General purpose implementation to check if |container| contains |value|.
+template <typename Container,
+ typename Value,
+ std::enable_if_t<
+ !internal::HasFindWithNpos<Container, Value>::value &&
+ !internal::HasFindWithEnd<Container, Value>::value &&
+ !internal::HasContains<Container, Value>::value>* = nullptr>
+bool Contains(const Container& container, const Value& value) {
+ using std::begin;
+ using std::end;
+ return std::find(begin(container), end(container), value) != end(container);
}
-// Test to see if a collection like a vector contains a particular value.
-// Returns true if the value is in the collection.
-template <typename Collection, typename Value>
-bool ContainsValue(const Collection& collection, const Value& value) {
- return std::find(std::begin(collection), std::end(collection), value) !=
- std::end(collection);
+// Specialized Contains() implementation for when |container| has a find()
+// member function and a static npos member, but no contains() member function.
+template <typename Container,
+ typename Value,
+ std::enable_if_t<internal::HasFindWithNpos<Container, Value>::value &&
+ !internal::HasContains<Container, Value>::value>* =
+ nullptr>
+bool Contains(const Container& container, const Value& value) {
+ return container.find(value) != Container::npos;
+}
+
+// Specialized Contains() implementation for when |container| has a find()
+// and end() member function, but no contains() member function.
+template <typename Container,
+ typename Value,
+ std::enable_if_t<internal::HasFindWithEnd<Container, Value>::value &&
+ !internal::HasContains<Container, Value>::value>* =
+ nullptr>
+bool Contains(const Container& container, const Value& value) {
+ return container.find(value) != container.end();
+}
+
+// Specialized Contains() implementation for when |container| has a contains()
+// member function.
+template <
+ typename Container,
+ typename Value,
+ std::enable_if_t<internal::HasContains<Container, Value>::value>* = nullptr>
+bool Contains(const Container& container, const Value& value) {
+ return container.contains(value);
}
// Means of generating a key for searching STL collections of std::unique_ptr
diff --git a/third_party/base/template_util.h b/third_party/base/template_util.h
index 6f31f47..d274423 100644
--- a/third_party/base/template_util.h
+++ b/third_party/base/template_util.h
@@ -36,7 +36,7 @@
#define CR_USE_FALLBACKS_FOR_GCC_WITH_LIBCXX
#endif
-namespace base {
+namespace pdfium {
template <class T> struct is_non_const_reference : std::false_type {};
template <class T> struct is_non_const_reference<T&> : std::true_type {};
@@ -44,7 +44,7 @@
namespace internal {
-// Implementation detail of base::void_t below.
+// Implementation detail of pdfium::void_t below.
template <typename...>
struct make_void {
using type = void;
@@ -52,14 +52,14 @@
} // namespace internal
-// base::void_t is an implementation of std::void_t from C++17.
+// pdfium::void_t is an implementation of std::void_t from C++17.
//
-// We use |base::internal::make_void| as a helper struct to avoid a C++14
+// We use |pdfium::internal::make_void| as a helper struct to avoid a C++14
// defect:
// http://en.cppreference.com/w/cpp/types/void_t
// http://open-std.org/JTC1/SC22/WG21/docs/cwg_defects.html#1558
template <typename... Ts>
-using void_t = typename ::base::internal::make_void<Ts...>::type;
+using void_t = typename ::pdfium::internal::make_void<Ts...>::type;
namespace internal {
@@ -145,7 +145,7 @@
using is_trivially_copy_constructible = std::is_trivially_copy_constructible<T>;
#endif
-} // namespace base
+} // namespace pdfium
#undef CR_USE_FALLBACKS_FOR_GCC_WITH_LIBCXX
#undef CR_USE_FALLBACKS_FOR_OLD_EXPERIMENTAL_GLIBCXX
diff --git a/xfa/fgas/crt/cfgas_stringformatter.cpp b/xfa/fgas/crt/cfgas_stringformatter.cpp
index 1f01f73..30b63f9 100644
--- a/xfa/fgas/crt/cfgas_stringformatter.cpp
+++ b/xfa/fgas/crt/cfgas_stringformatter.cpp
@@ -255,7 +255,7 @@
ccf++;
continue;
}
- if (!pdfium::ContainsValue(kDateSymbols, spDatePattern[ccf])) {
+ if (!pdfium::Contains(kDateSymbols, spDatePattern[ccf])) {
if (spDatePattern[ccf] != spDate[*cc])
return false;
(*cc)++;
@@ -377,7 +377,7 @@
ccf++;
continue;
}
- if (!pdfium::ContainsValue(kTimeSymbols, spTimePattern[ccf])) {
+ if (!pdfium::Contains(kTimeSymbols, spTimePattern[ccf])) {
if (spTimePattern[ccf] != spTime[*cc])
return false;
(*cc)++;
@@ -579,7 +579,7 @@
ccf++;
continue;
}
- if (!pdfium::ContainsValue(kDateSymbols, spDatePattern[ccf])) {
+ if (!pdfium::Contains(kDateSymbols, spDatePattern[ccf])) {
wsResult += spDatePattern[ccf++];
continue;
}
@@ -647,7 +647,7 @@
ccf++;
continue;
}
- if (!pdfium::ContainsValue(kTimeSymbols, spTimePattern[ccf])) {
+ if (!pdfium::Contains(kTimeSymbols, spTimePattern[ccf])) {
wsResult += spTimePattern[ccf++];
continue;
}
@@ -857,7 +857,7 @@
if (m_spPattern[ccf] == '\'') {
GetLiteralText(m_spPattern, &ccf);
} else if (!bBraceOpen &&
- !pdfium::ContainsValue(kConstChars, m_spPattern[ccf])) {
+ !pdfium::Contains(kConstChars, m_spPattern[ccf])) {
WideString wsCategory(m_spPattern[ccf]);
ccf++;
while (true) {
@@ -912,7 +912,7 @@
wsPurgePattern +=
WideStringView(m_spPattern.data() + iCurChar, ccf - iCurChar + 1);
} else if (!bBrackOpen &&
- !pdfium::ContainsValue(kConstChars, m_spPattern[ccf])) {
+ !pdfium::Contains(kConstChars, m_spPattern[ccf])) {
WideString wsSearchCategory(m_spPattern[ccf]);
ccf++;
while (ccf < m_spPattern.size() && m_spPattern[ccf] != '{' &&
@@ -962,7 +962,7 @@
*wsPurgePattern +=
WideStringView(m_spPattern.data() + iCurChar, ccf - iCurChar + 1);
} else if (!bBrackOpen &&
- !pdfium::ContainsValue(kConstChars, m_spPattern[ccf])) {
+ !pdfium::Contains(kConstChars, m_spPattern[ccf])) {
WideString wsCategory(m_spPattern[ccf]);
ccf++;
while (ccf < m_spPattern.size() && m_spPattern[ccf] != '{' &&
@@ -1557,7 +1557,7 @@
wsTempPattern +=
WideStringView(m_spPattern.data() + iCurChar, ccf - iCurChar + 1);
} else if (!bBraceOpen && iFindCategory != 3 &&
- !pdfium::ContainsValue(kConstChars, m_spPattern[ccf])) {
+ !pdfium::Contains(kConstChars, m_spPattern[ccf])) {
WideString wsCategory(m_spPattern[ccf]);
ccf++;
while (ccf < m_spPattern.size() && m_spPattern[ccf] != '{' &&
diff --git a/xfa/fgas/font/cfgas_fontmgr.cpp b/xfa/fgas/font/cfgas_fontmgr.cpp
index c537860..3d2d305 100644
--- a/xfa/fgas/font/cfgas_fontmgr.cpp
+++ b/xfa/fgas/font/cfgas_fontmgr.cpp
@@ -833,7 +833,7 @@
wchar_t wUnicode,
uint32_t dwFontStyles,
const wchar_t* pszFontFamily) {
- if (pdfium::ContainsKey(m_FailedUnicodesSet, wUnicode))
+ if (pdfium::Contains(m_FailedUnicodesSet, wUnicode))
return nullptr;
const FGAS_FONTUSB* x = FGAS_GetUnicodeBitField(wUnicode);
diff --git a/xfa/fwl/cfwl_monthcalendar.cpp b/xfa/fwl/cfwl_monthcalendar.cpp
index a9c276e..ac03308 100644
--- a/xfa/fwl/cfwl_monthcalendar.cpp
+++ b/xfa/fwl/cfwl_monthcalendar.cpp
@@ -552,7 +552,7 @@
uint32_t dwStates = 0;
if (m_iYear == m_iCurYear && m_iMonth == m_iCurMonth && m_iDay == (i + 1))
dwStates |= FWL_ITEMSTATE_MCD_Flag;
- if (pdfium::ContainsValue(m_SelDayArray, i + 1))
+ if (pdfium::Contains(m_SelDayArray, i + 1))
dwStates |= FWL_ITEMSTATE_MCD_Selected;
CFX_RectF rtDate;
@@ -619,7 +619,7 @@
void CFWL_MonthCalendar::AddSelDay(int32_t iDay) {
ASSERT(iDay > 0);
- if (!pdfium::ContainsValue(m_SelDayArray, iDay))
+ if (!pdfium::Contains(m_SelDayArray, iDay))
return;
RemoveSelDay();
@@ -638,7 +638,7 @@
return;
}
- if (!pdfium::ContainsValue(m_SelDayArray, m_iDay))
+ if (!pdfium::Contains(m_SelDayArray, m_iDay))
AddSelDay(m_iDay);
}
diff --git a/xfa/fwl/cfwl_notedriver.cpp b/xfa/fwl/cfwl_notedriver.cpp
index 204a17d..63ccce3 100644
--- a/xfa/fwl/cfwl_notedriver.cpp
+++ b/xfa/fwl/cfwl_notedriver.cpp
@@ -40,7 +40,7 @@
if (key == 0) {
do {
key = rand();
- } while (key == 0 || pdfium::ContainsKey(m_eventTargets, key));
+ } while (key == 0 || pdfium::Contains(m_eventTargets, key));
pListener->SetEventKey(key);
}
if (!m_eventTargets[key])
diff --git a/xfa/fxfa/cxfa_ffdocview.cpp b/xfa/fxfa/cxfa_ffdocview.cpp
index 676ef67..b110e09 100644
--- a/xfa/fxfa/cxfa_ffdocview.cpp
+++ b/xfa/fxfa/cxfa_ffdocview.cpp
@@ -512,7 +512,7 @@
void CXFA_FFDocView::AddIndexChangedSubform(CXFA_Node* pNode) {
ASSERT(pNode->GetElementType() == XFA_Element::Subform);
- if (!pdfium::ContainsValue(m_IndexChangedSubforms, pNode))
+ if (!pdfium::Contains(m_IndexChangedSubforms, pNode))
m_IndexChangedSubforms.push_back(pNode);
}
@@ -577,7 +577,7 @@
}
void CXFA_FFDocView::AddValidateNode(CXFA_Node* node) {
- if (!pdfium::ContainsValue(m_ValidateNodes, node))
+ if (!pdfium::Contains(m_ValidateNodes, node))
m_ValidateNodes.push_back(node);
}
diff --git a/xfa/fxfa/cxfa_ffpageview.cpp b/xfa/fxfa/cxfa_ffpageview.cpp
index e185e0d..f8b6c1c 100644
--- a/xfa/fxfa/cxfa_ffpageview.cpp
+++ b/xfa/fxfa/cxfa_ffpageview.cpp
@@ -352,8 +352,7 @@
CXFA_FFWidget* hWidget = SpaceOrderWidgetArray[0];
while (pdfium::CollectionSize<int32_t>(m_TabOrderWidgetArray) <
nWidgetCount) {
- if (!pdfium::ContainsValue(m_TabOrderWidgetArray,
- hWidget->GetLayoutItem())) {
+ if (!pdfium::Contains(m_TabOrderWidgetArray, hWidget->GetLayoutItem())) {
m_TabOrderWidgetArray.emplace_back(hWidget->GetLayoutItem());
CXFA_Node* pNode = hWidget->GetNode();
if (pNode->GetFFWidgetType() == XFA_FFWidgetType::kExclGroup) {
@@ -367,8 +366,8 @@
SpaceOrderWidgetArray[iWidgetIndex % nWidgetCount];
if (radio->GetNode()->GetExclGroupIfExists() != pNode)
break;
- if (!pdfium::ContainsValue(m_TabOrderWidgetArray,
- hWidget->GetLayoutItem())) {
+ if (!pdfium::Contains(m_TabOrderWidgetArray,
+ hWidget->GetLayoutItem())) {
m_TabOrderWidgetArray.emplace_back(radio->GetLayoutItem());
}
iWidgetIndex++;
diff --git a/xfa/fxfa/layout/cxfa_layoutprocessor.cpp b/xfa/fxfa/layout/cxfa_layoutprocessor.cpp
index bb38fbe..b247e8c 100644
--- a/xfa/fxfa/layout/cxfa_layoutprocessor.cpp
+++ b/xfa/fxfa/layout/cxfa_layoutprocessor.cpp
@@ -124,7 +124,7 @@
}
void CXFA_LayoutProcessor::AddChangedContainer(CXFA_Node* pContainer) {
- if (!pdfium::ContainsValue(m_rgChangedContainers, pContainer))
+ if (!pdfium::Contains(m_rgChangedContainers, pContainer))
m_rgChangedContainers.push_back(pContainer);
}
diff --git a/xfa/fxfa/parser/cxfa_node.cpp b/xfa/fxfa/parser/cxfa_node.cpp
index fe21aba..cf38c2a 100644
--- a/xfa/fxfa/parser/cxfa_node.cpp
+++ b/xfa/fxfa/parser/cxfa_node.cpp
@@ -556,7 +556,7 @@
CXFA_Node* pCommonParent = (*rgNodeSet.begin())->GetParent();
for (CXFA_Node* pNode = pCommonParent->GetFirstChild(); pNode;
pNode = pNode->GetNextSibling()) {
- if (pdfium::ContainsValue(rgNodeSet, pNode))
+ if (pdfium::Contains(rgNodeSet, pNode))
rgNodeArray.push_back(pNode);
}
return rgNodeArray;
@@ -597,7 +597,7 @@
for (CXFA_Node* pNode : sSet2) {
CXFA_NodeSetPair* pNodeSetPair = NodeSetPairForNode(pNode, &rgMap);
if (pNodeSetPair) {
- if (pdfium::ContainsValue(pNodeSetPair->first, pNode))
+ if (pdfium::Contains(pNodeSetPair->first, pNode))
pNodeSetPair->first.erase(pNode);
else
pNodeSetPair->second.insert(pNode);
@@ -2781,7 +2781,7 @@
pdfium::MakeUnique<CXFA_CalcData>());
pGlobalData = pRefNode->JSObject()->GetCalcData();
}
- if (!pdfium::ContainsValue(pGlobalData->m_Globals, this))
+ if (!pdfium::Contains(pGlobalData->m_Globals, this))
pGlobalData->m_Globals.push_back(this);
}
}
@@ -4258,7 +4258,7 @@
int32_t iSelected = 0;
std::vector<WideString> wsSaveTextArray = GetChoiceListItems(true);
for (const auto& value : wsValueArray) {
- if (pdfium::ContainsValue(wsSaveTextArray, value))
+ if (pdfium::Contains(wsSaveTextArray, value))
iSelected++;
}
return iSelected;
@@ -4300,8 +4300,7 @@
bool CXFA_Node::GetItemState(int32_t nIndex) {
std::vector<WideString> wsSaveTextArray = GetChoiceListItems(true);
return pdfium::IndexInBounds(wsSaveTextArray, nIndex) &&
- pdfium::ContainsValue(GetSelectedItemsValue(),
- wsSaveTextArray[nIndex]);
+ pdfium::Contains(GetSelectedItemsValue(), wsSaveTextArray[nIndex]);
}
void CXFA_Node::SetItemState(int32_t nIndex,