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,