Index: core/fpdfapi/parser/cpdf_document.cpp |
diff --git a/core/fpdfapi/parser/cpdf_document.cpp b/core/fpdfapi/parser/cpdf_document.cpp |
index 4ac0aa6aa9e126a33e17f3c2f645a643c3d2c39f..9e60aaa8824ca574b35a1eb459bc8ec214ba7f2d 100644 |
--- a/core/fpdfapi/parser/cpdf_document.cpp |
+++ b/core/fpdfapi/parser/cpdf_document.cpp |
@@ -381,20 +381,20 @@ void CPDF_Document::LoadDocInternal() { |
void CPDF_Document::LoadDoc() { |
LoadDocInternal(); |
- m_PageList.SetSize(RetrievePageCount()); |
+ LoadPages(); |
} |
void CPDF_Document::LoadLinearizedDoc( |
const CPDF_LinearizedHeader* pLinearizationParams) { |
m_bLinearized = true; |
LoadDocInternal(); |
- m_PageList.SetSize(pLinearizationParams->GetPageCount()); |
+ m_PageList.resize(pLinearizationParams->GetPageCount()); |
m_iFirstPageNo = pLinearizationParams->GetFirstPageNo(); |
m_dwFirstPageObjNum = pLinearizationParams->GetFirstPageObjNum(); |
} |
void CPDF_Document::LoadPages() { |
- m_PageList.SetSize(RetrievePageCount()); |
+ m_PageList.resize(RetrievePageCount()); |
} |
CPDF_Dictionary* CPDF_Document::TraversePDFPages(int iPage, |
@@ -402,21 +402,20 @@ CPDF_Dictionary* CPDF_Document::TraversePDFPages(int iPage, |
size_t level) { |
if (*nPagesToGo < 0 || m_bReachedMaxPageLevel) |
return nullptr; |
+ |
CPDF_Dictionary* pPages = m_pTreeTraversal[level].first; |
CPDF_Array* pKidList = pPages->GetArrayFor("Kids"); |
if (!pKidList) { |
if (*nPagesToGo != 1) |
return nullptr; |
- m_PageList.SetAt(iPage, pPages->GetObjNum()); |
+ m_PageList[iPage] = pPages->GetObjNum(); |
return pPages; |
} |
- |
if (level >= FX_MAX_PAGE_LEVEL) { |
m_pTreeTraversal.pop_back(); |
m_bReachedMaxPageLevel = true; |
return nullptr; |
} |
- |
CPDF_Dictionary* page = nullptr; |
for (size_t i = m_pTreeTraversal[level].second; i < pKidList->GetCount(); |
i++) { |
@@ -433,7 +432,7 @@ CPDF_Dictionary* CPDF_Document::TraversePDFPages(int iPage, |
continue; |
} |
if (!pKid->KeyExist("Kids")) { |
- m_PageList.SetAt(iPage - (*nPagesToGo) + 1, pKid->GetObjNum()); |
+ m_PageList[iPage - (*nPagesToGo) + 1] = pKid->GetObjNum(); |
(*nPagesToGo)--; |
m_pTreeTraversal[level].second++; |
if (*nPagesToGo == 0) { |
@@ -474,11 +473,11 @@ CPDF_Dictionary* CPDF_Document::GetPagesDict() const { |
} |
bool CPDF_Document::IsPageLoaded(int iPage) const { |
- return !!m_PageList.GetAt(iPage); |
+ return !!m_PageList[iPage]; |
} |
CPDF_Dictionary* CPDF_Document::GetPage(int iPage) { |
- if (iPage < 0 || iPage >= m_PageList.GetSize()) |
+ if (iPage < 0 || iPage >= pdfium::CollectionSize<int>(m_PageList)) |
return nullptr; |
if (m_bLinearized && (iPage == m_iFirstPageNo)) { |
@@ -487,13 +486,9 @@ CPDF_Dictionary* CPDF_Document::GetPage(int iPage) { |
return pDict; |
} |
} |
- |
- int objnum = m_PageList.GetAt(iPage); |
- if (objnum) { |
- if (CPDF_Dictionary* pDict = ToDictionary(GetOrParseIndirectObject(objnum))) |
- return pDict; |
- return nullptr; |
- } |
+ uint32_t objnum = m_PageList[iPage]; |
+ if (objnum) |
+ return ToDictionary(GetOrParseIndirectObject(objnum)); |
CPDF_Dictionary* pPages = GetPagesDict(); |
if (!pPages) |
@@ -517,7 +512,7 @@ CPDF_Dictionary* CPDF_Document::GetPage(int iPage) { |
} |
void CPDF_Document::SetPageObjNum(int iPage, uint32_t objNum) { |
- m_PageList.SetAt(iPage, objNum); |
+ m_PageList[iPage] = objNum; |
} |
int CPDF_Document::FindPageIndex(CPDF_Dictionary* pNode, |
@@ -554,7 +549,7 @@ int CPDF_Document::FindPageIndex(CPDF_Dictionary* pNode, |
for (size_t i = 0; i < count; i++) { |
if (CPDF_Reference* pKid = ToReference(pKidList->GetObjectAt(i))) { |
if (pKid->GetRefObjNum() == objnum) { |
- m_PageList.SetAt(index + i, objnum); |
+ m_PageList[index + i] = objnum; |
return static_cast<int>(index + i); |
} |
} |
@@ -574,15 +569,14 @@ int CPDF_Document::FindPageIndex(CPDF_Dictionary* pNode, |
} |
int CPDF_Document::GetPageIndex(uint32_t objnum) { |
- uint32_t nPages = m_PageList.GetSize(); |
+ uint32_t nPages = m_PageList.size(); |
uint32_t skip_count = 0; |
bool bSkipped = false; |
for (uint32_t i = 0; i < nPages; i++) { |
- uint32_t objnum1 = m_PageList.GetAt(i); |
- if (objnum1 == objnum) |
+ if (m_PageList[i] == objnum) |
return i; |
- if (!bSkipped && objnum1 == 0) { |
+ if (!bSkipped && m_PageList[i] == 0) { |
skip_count = i; |
bSkipped = true; |
} |
@@ -596,7 +590,7 @@ int CPDF_Document::GetPageIndex(uint32_t objnum) { |
} |
int CPDF_Document::GetPageCount() const { |
- return m_PageList.GetSize(); |
+ return pdfium::CollectionSize<int>(m_PageList); |
} |
int CPDF_Document::RetrievePageCount() const { |
@@ -747,7 +741,7 @@ bool CPDF_Document::InsertNewPage(int iPage, CPDF_Dictionary* pPageDict) { |
if (!InsertDeletePDFPage(pPages, iPage, pPageDict, true, &stack)) |
return false; |
} |
- m_PageList.InsertAt(iPage, pPageDict->GetObjNum()); |
+ m_PageList.insert(m_PageList.begin() + iPage, pPageDict->GetObjNum()); |
return true; |
} |
@@ -764,7 +758,7 @@ void CPDF_Document::DeletePage(int iPage) { |
if (!InsertDeletePDFPage(pPages, iPage, nullptr, false, &stack)) |
return; |
- m_PageList.RemoveAt(iPage); |
+ m_PageList.erase(m_PageList.begin() + iPage); |
} |
CPDF_Font* CPDF_Document::AddStandardFont(const FX_CHAR* font, |