Use std::map::extract() in a few places Change-Id: I9c10cc32bd0c20d517bd6d0e1a902aaa38ca3726 Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/134870 Commit-Queue: Tom Sepez <tsepez@chromium.org> Reviewed-by: Lei Zhang <thestig@chromium.org>
diff --git a/core/fpdfapi/edit/cpdf_pagecontentgenerator.cpp b/core/fpdfapi/edit/cpdf_pagecontentgenerator.cpp index c422110..f3c65f3 100644 --- a/core/fpdfapi/edit/cpdf_pagecontentgenerator.cpp +++ b/core/fpdfapi/edit/cpdf_pagecontentgenerator.cpp
@@ -159,10 +159,9 @@ const std::vector<ByteString>& keys_to_restore, CPDF_PageObjectHolder::RemovedResourceMap& saved_resource_map) { for (const ByteString& key : keys_to_restore) { - auto it = saved_resource_map.find(key); - CHECK(it != saved_resource_map.end()); - resource_dict->SetFor(key, std::move(it->second)); - saved_resource_map.erase(it); + auto node = saved_resource_map.extract(key); + CHECK(!node.empty()); + resource_dict->SetFor(node.key(), std::move(node.mapped())); } }
diff --git a/core/fpdfapi/parser/cpdf_dictionary.cpp b/core/fpdfapi/parser/cpdf_dictionary.cpp index 01fa53d..de35427 100644 --- a/core/fpdfapi/parser/cpdf_dictionary.cpp +++ b/core/fpdfapi/parser/cpdf_dictionary.cpp
@@ -303,13 +303,12 @@ RetainPtr<CPDF_Object> CPDF_Dictionary::RemoveFor(ByteStringView key) { CHECK(!IsLocked()); - RetainPtr<CPDF_Object> result; auto it = map_.find(key); - if (it != map_.end()) { - result = std::move(it->second); - map_.erase(it); + if (it == map_.end()) { + return RetainPtr<CPDF_Object>(); } - return result; + auto node = map_.extract(it); + return std::move(node.mapped()); } void CPDF_Dictionary::ReplaceKey(const ByteString& oldkey,
diff --git a/fpdfsdk/formfiller/cffl_formfield.cpp b/fpdfsdk/formfiller/cffl_formfield.cpp index 1d16e50..3409630 100644 --- a/fpdfsdk/formfiller/cffl_formfield.cpp +++ b/fpdfsdk/formfiller/cffl_formfield.cpp
@@ -28,11 +28,9 @@ void CFFL_FormField::DestroyWindows() { while (!maps_.empty()) { - auto it = maps_.begin(); - std::unique_ptr<CPWL_Wnd> pWnd = std::move(it->second); - maps_.erase(it); - pWnd->InvalidateProvider(this); - pWnd->Destroy(); + auto node = maps_.extract(maps_.begin()); + node.mapped()->InvalidateProvider(this); + node.mapped()->Destroy(); } } @@ -412,14 +410,11 @@ } void CFFL_FormField::DestroyPWLWindow(const CPDFSDK_PageView* pPageView) { - auto it = maps_.find(pPageView); - if (it == maps_.end()) { + auto node = maps_.extract(pPageView); + if (node.empty()) { return; } - - std::unique_ptr<CPWL_Wnd> pWnd = std::move(it->second); - maps_.erase(it); - pWnd->Destroy(); + node.mapped()->Destroy(); } CFX_Matrix CFFL_FormField::GetWindowMatrix(