| 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, | 
|  |