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(