Use vector<UnownedPtr<>> in CPDFSK_AnnotIterator.

Still some raw pointers lurking.

Change-Id: I847f33cb3d21cef7a6ff4e417745b43d73ec8977
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/78952
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
diff --git a/fpdfsdk/cpdfsdk_annotiterator.cpp b/fpdfsdk/cpdfsdk_annotiterator.cpp
index 5827a42..b93749c 100644
--- a/fpdfsdk/cpdfsdk_annotiterator.cpp
+++ b/fpdfsdk/cpdfsdk_annotiterator.cpp
@@ -82,29 +82,31 @@
   return *(--iter);
 }
 
-void CPDFSDK_AnnotIterator::CollectAnnots(std::vector<CPDFSDK_Annot*>* pArray) {
+void CPDFSDK_AnnotIterator::CollectAnnots(
+    std::vector<UnownedPtr<CPDFSDK_Annot>>* pArray) {
   for (auto* pAnnot : m_pPageView->GetAnnotList()) {
     if (pdfium::Contains(m_subtypes, pAnnot->GetAnnotSubtype()) &&
         !pAnnot->IsSignatureWidget()) {
-      pArray->push_back(pAnnot);
+      pArray->emplace_back(pAnnot);
     }
   }
 }
 
 CFX_FloatRect CPDFSDK_AnnotIterator::AddToAnnotsList(
-    std::vector<CPDFSDK_Annot*>* sa,
+    std::vector<UnownedPtr<CPDFSDK_Annot>>* sa,
     size_t idx) {
   CPDFSDK_Annot* pLeftTopAnnot = sa->at(idx);
   CFX_FloatRect rcLeftTop = GetAnnotRect(pLeftTopAnnot);
-  m_Annots.push_back(pLeftTopAnnot);
+  m_Annots.emplace_back(pLeftTopAnnot);
   sa->erase(sa->begin() + idx);
   return rcLeftTop;
 }
 
-void CPDFSDK_AnnotIterator::AddSelectedToAnnots(std::vector<CPDFSDK_Annot*>* sa,
-                                                std::vector<size_t>* aSelect) {
+void CPDFSDK_AnnotIterator::AddSelectedToAnnots(
+    std::vector<UnownedPtr<CPDFSDK_Annot>>* sa,
+    std::vector<size_t>* aSelect) {
   for (size_t i = 0; i < aSelect->size(); ++i)
-    m_Annots.push_back(sa->at(aSelect->at(i)));
+    m_Annots.emplace_back(sa->at(aSelect->at(i)));
 
   for (int i = aSelect->size() - 1; i >= 0; --i)
     sa->erase(sa->begin() + aSelect->at(i));
@@ -117,7 +119,7 @@
       break;
 
     case ROW: {
-      std::vector<CPDFSDK_Annot*> sa;
+      std::vector<UnownedPtr<CPDFSDK_Annot>> sa;
       CollectAnnots(&sa);
       std::sort(sa.begin(), sa.end(), CompareByLeftAscending);
 
@@ -149,7 +151,7 @@
     }
 
     case COLUMN: {
-      std::vector<CPDFSDK_Annot*> sa;
+      std::vector<UnownedPtr<CPDFSDK_Annot>> sa;
       CollectAnnots(&sa);
       std::sort(sa.begin(), sa.end(), CompareByTopDescending);
 
diff --git a/fpdfsdk/cpdfsdk_annotiterator.h b/fpdfsdk/cpdfsdk_annotiterator.h
index 7a4afff..a9c9212 100644
--- a/fpdfsdk/cpdfsdk_annotiterator.h
+++ b/fpdfsdk/cpdfsdk_annotiterator.h
@@ -36,15 +36,16 @@
 
  private:
   void GenerateResults();
-  void CollectAnnots(std::vector<CPDFSDK_Annot*>* pArray);
-  CFX_FloatRect AddToAnnotsList(std::vector<CPDFSDK_Annot*>* sa, size_t idx);
-  void AddSelectedToAnnots(std::vector<CPDFSDK_Annot*>* sa,
+  void CollectAnnots(std::vector<UnownedPtr<CPDFSDK_Annot>>* pArray);
+  CFX_FloatRect AddToAnnotsList(std::vector<UnownedPtr<CPDFSDK_Annot>>* sa,
+                                size_t idx);
+  void AddSelectedToAnnots(std::vector<UnownedPtr<CPDFSDK_Annot>>* sa,
                            std::vector<size_t>* aSelect);
 
   UnownedPtr<CPDFSDK_PageView> const m_pPageView;
   const std::vector<CPDF_Annot::Subtype> m_subtypes;
   const TabOrder m_eTabOrder;
-  std::vector<CPDFSDK_Annot*> m_Annots;
+  std::vector<UnownedPtr<CPDFSDK_Annot>> m_Annots;
 };
 
 #endif  // FPDFSDK_CPDFSDK_ANNOTITERATOR_H_