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_