| OLD | NEW |
| 1 // Copyright 2016 PDFium Authors. All rights reserved. | 1 // Copyright 2016 PDFium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
| 6 | 6 |
| 7 #include "core/fpdfapi/fpdf_parser/include/cpdf_data_avail.h" | 7 #include "core/fpdfapi/fpdf_parser/include/cpdf_data_avail.h" |
| 8 | 8 |
| 9 #include <algorithm> | 9 #include <algorithm> |
| 10 #include <memory> | 10 #include <memory> |
| (...skipping 461 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 472 m_docStatus = PDF_DATAAVAIL_ERROR; | 472 m_docStatus = PDF_DATAAVAIL_ERROR; |
| 473 return FALSE; | 473 return FALSE; |
| 474 } | 474 } |
| 475 | 475 |
| 476 m_PagesObjNum = pRef->GetRefObjNum(); | 476 m_PagesObjNum = pRef->GetRefObjNum(); |
| 477 m_pCurrentParser = m_pDocument->GetParser(); | 477 m_pCurrentParser = m_pDocument->GetParser(); |
| 478 m_docStatus = PDF_DATAAVAIL_PAGETREE; | 478 m_docStatus = PDF_DATAAVAIL_PAGETREE; |
| 479 return TRUE; | 479 return TRUE; |
| 480 } | 480 } |
| 481 | 481 |
| 482 bool CPDF_DataAvail::IsFirstCheck(int iPage) { | 482 bool CPDF_DataAvail::IsFirstCheck(uint32_t dwPage) { |
| 483 return m_pageMapCheckState.insert(iPage).second; | 483 return m_pageMapCheckState.insert(dwPage).second; |
| 484 } | 484 } |
| 485 | 485 |
| 486 void CPDF_DataAvail::ResetFirstCheck(int iPage) { | 486 void CPDF_DataAvail::ResetFirstCheck(uint32_t dwPage) { |
| 487 m_pageMapCheckState.erase(iPage); | 487 m_pageMapCheckState.erase(dwPage); |
| 488 } | 488 } |
| 489 | 489 |
| 490 FX_BOOL CPDF_DataAvail::CheckPage(DownloadHints* pHints) { | 490 FX_BOOL CPDF_DataAvail::CheckPage(DownloadHints* pHints) { |
| 491 uint32_t iPageObjs = m_PageObjList.GetSize(); | 491 uint32_t iPageObjs = m_PageObjList.GetSize(); |
| 492 CFX_ArrayTemplate<uint32_t> UnavailObjList; | 492 CFX_ArrayTemplate<uint32_t> UnavailObjList; |
| 493 for (uint32_t i = 0; i < iPageObjs; ++i) { | 493 for (uint32_t i = 0; i < iPageObjs; ++i) { |
| 494 uint32_t dwPageObjNum = m_PageObjList.GetAt(i); | 494 uint32_t dwPageObjNum = m_PageObjList.GetAt(i); |
| 495 FX_BOOL bExist = FALSE; | 495 FX_BOOL bExist = FALSE; |
| 496 CPDF_Object* pObj = GetObject(dwPageObjNum, pHints, &bExist); | 496 CPDF_Object* pObj = GetObject(dwPageObjNum, pHints, &bExist); |
| 497 if (!pObj) { | 497 if (!pObj) { |
| (...skipping 730 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1228 return TRUE; | 1228 return TRUE; |
| 1229 } | 1229 } |
| 1230 m_dwPrevXRefOffset = 0; | 1230 m_dwPrevXRefOffset = 0; |
| 1231 m_docStatus = PDF_DATAAVAIL_TRAILER_APPEND; | 1231 m_docStatus = PDF_DATAAVAIL_TRAILER_APPEND; |
| 1232 return TRUE; | 1232 return TRUE; |
| 1233 } | 1233 } |
| 1234 pHints->AddSegment(m_Pos, iTrailerSize); | 1234 pHints->AddSegment(m_Pos, iTrailerSize); |
| 1235 return FALSE; | 1235 return FALSE; |
| 1236 } | 1236 } |
| 1237 | 1237 |
| 1238 FX_BOOL CPDF_DataAvail::CheckPage(int32_t iPage, DownloadHints* pHints) { | 1238 FX_BOOL CPDF_DataAvail::CheckPage(uint32_t dwPage, DownloadHints* pHints) { |
| 1239 while (TRUE) { | 1239 while (TRUE) { |
| 1240 switch (m_docStatus) { | 1240 switch (m_docStatus) { |
| 1241 case PDF_DATAAVAIL_PAGETREE: | 1241 case PDF_DATAAVAIL_PAGETREE: |
| 1242 if (!LoadDocPages(pHints)) | 1242 if (!LoadDocPages(pHints)) |
| 1243 return FALSE; | 1243 return FALSE; |
| 1244 break; | 1244 break; |
| 1245 case PDF_DATAAVAIL_PAGE: | 1245 case PDF_DATAAVAIL_PAGE: |
| 1246 if (!LoadDocPage(iPage, pHints)) | 1246 if (!LoadDocPage(dwPage, pHints)) |
| 1247 return FALSE; | 1247 return FALSE; |
| 1248 break; | 1248 break; |
| 1249 case PDF_DATAAVAIL_ERROR: | 1249 case PDF_DATAAVAIL_ERROR: |
| 1250 return LoadAllFile(pHints); | 1250 return LoadAllFile(pHints); |
| 1251 default: | 1251 default: |
| 1252 m_bPagesTreeLoad = TRUE; | 1252 m_bPagesTreeLoad = TRUE; |
| 1253 m_bPagesLoad = TRUE; | 1253 m_bPagesLoad = TRUE; |
| 1254 m_bCurPageDictLoadOK = TRUE; | 1254 m_bCurPageDictLoadOK = TRUE; |
| 1255 m_docStatus = PDF_DATAAVAIL_PAGE; | 1255 m_docStatus = PDF_DATAAVAIL_PAGE; |
| 1256 return TRUE; | 1256 return TRUE; |
| (...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1413 } | 1413 } |
| 1414 | 1414 |
| 1415 if (iPage == iCount) { | 1415 if (iPage == iCount) { |
| 1416 m_docStatus = PDF_DATAAVAIL_DONE; | 1416 m_docStatus = PDF_DATAAVAIL_DONE; |
| 1417 return TRUE; | 1417 return TRUE; |
| 1418 } | 1418 } |
| 1419 } | 1419 } |
| 1420 return TRUE; | 1420 return TRUE; |
| 1421 } | 1421 } |
| 1422 | 1422 |
| 1423 FX_BOOL CPDF_DataAvail::LoadDocPage(int32_t iPage, DownloadHints* pHints) { | 1423 FX_BOOL CPDF_DataAvail::LoadDocPage(uint32_t dwPage, DownloadHints* pHints) { |
| 1424 FX_SAFE_INT32 safePage = pdfium::base::checked_cast<int32_t>(dwPage); |
| 1425 int32_t iPage = safePage.ValueOrDie(); |
| 1424 if (m_pDocument->GetPageCount() <= iPage || | 1426 if (m_pDocument->GetPageCount() <= iPage || |
| 1425 m_pDocument->m_PageList.GetAt(iPage)) { | 1427 m_pDocument->m_PageList.GetAt(iPage)) { |
| 1426 m_docStatus = PDF_DATAAVAIL_DONE; | 1428 m_docStatus = PDF_DATAAVAIL_DONE; |
| 1427 return TRUE; | 1429 return TRUE; |
| 1428 } | 1430 } |
| 1429 | 1431 |
| 1430 if (m_pageNodes.m_type == PDF_PAGENODE_PAGE) { | 1432 if (m_pageNodes.m_type == PDF_PAGENODE_PAGE) { |
| 1431 if (iPage == 0) { | 1433 if (iPage == 0) { |
| 1432 m_docStatus = PDF_DATAAVAIL_DONE; | 1434 m_docStatus = PDF_DATAAVAIL_DONE; |
| 1433 return TRUE; | 1435 return TRUE; |
| (...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1524 if (!PreparePageItem()) | 1526 if (!PreparePageItem()) |
| 1525 return DataNotAvailable; | 1527 return DataNotAvailable; |
| 1526 | 1528 |
| 1527 m_bMainXRefLoadedOK = TRUE; | 1529 m_bMainXRefLoadedOK = TRUE; |
| 1528 m_bLinearedDataOK = TRUE; | 1530 m_bLinearedDataOK = TRUE; |
| 1529 } | 1531 } |
| 1530 | 1532 |
| 1531 return m_bLinearedDataOK ? DataAvailable : DataNotAvailable; | 1533 return m_bLinearedDataOK ? DataAvailable : DataNotAvailable; |
| 1532 } | 1534 } |
| 1533 | 1535 |
| 1534 FX_BOOL CPDF_DataAvail::CheckPageAnnots(int32_t iPage, DownloadHints* pHints) { | 1536 FX_BOOL CPDF_DataAvail::CheckPageAnnots(uint32_t dwPage, |
| 1537 DownloadHints* pHints) { |
| 1535 if (!m_objs_array.GetSize()) { | 1538 if (!m_objs_array.GetSize()) { |
| 1536 m_objs_array.RemoveAll(); | 1539 m_objs_array.RemoveAll(); |
| 1537 m_ObjectSet.clear(); | 1540 m_ObjectSet.clear(); |
| 1538 | 1541 |
| 1539 CPDF_Dictionary* pPageDict = m_pDocument->GetPage(iPage); | 1542 FX_SAFE_INT32 safePage = pdfium::base::checked_cast<int32_t>(dwPage); |
| 1543 CPDF_Dictionary* pPageDict = m_pDocument->GetPage(safePage.ValueOrDie()); |
| 1540 if (!pPageDict) | 1544 if (!pPageDict) |
| 1541 return TRUE; | 1545 return TRUE; |
| 1542 | 1546 |
| 1543 CPDF_Object* pAnnots = pPageDict->GetObjectBy("Annots"); | 1547 CPDF_Object* pAnnots = pPageDict->GetObjectBy("Annots"); |
| 1544 if (!pAnnots) | 1548 if (!pAnnots) |
| 1545 return TRUE; | 1549 return TRUE; |
| 1546 | 1550 |
| 1547 CFX_ArrayTemplate<CPDF_Object*> obj_array; | 1551 CFX_ArrayTemplate<CPDF_Object*> obj_array; |
| 1548 obj_array.Add(pAnnots); | 1552 obj_array.Add(pAnnots); |
| 1549 | 1553 |
| 1550 FX_BOOL bRet = IsObjectsAvail(obj_array, FALSE, pHints, m_objs_array); | 1554 FX_BOOL bRet = IsObjectsAvail(obj_array, FALSE, pHints, m_objs_array); |
| 1551 if (bRet) | 1555 if (bRet) |
| 1552 m_objs_array.RemoveAll(); | 1556 m_objs_array.RemoveAll(); |
| 1553 | 1557 |
| 1554 return bRet; | 1558 return bRet; |
| 1555 } | 1559 } |
| 1556 | 1560 |
| 1557 CFX_ArrayTemplate<CPDF_Object*> new_objs_array; | 1561 CFX_ArrayTemplate<CPDF_Object*> new_objs_array; |
| 1558 FX_BOOL bRet = IsObjectsAvail(m_objs_array, FALSE, pHints, new_objs_array); | 1562 FX_BOOL bRet = IsObjectsAvail(m_objs_array, FALSE, pHints, new_objs_array); |
| 1559 m_objs_array.RemoveAll(); | 1563 m_objs_array.RemoveAll(); |
| 1560 if (!bRet) | 1564 if (!bRet) |
| 1561 m_objs_array.Append(new_objs_array); | 1565 m_objs_array.Append(new_objs_array); |
| 1562 | 1566 |
| 1563 return bRet; | 1567 return bRet; |
| 1564 } | 1568 } |
| 1565 | 1569 |
| 1566 CPDF_DataAvail::DocAvailStatus CPDF_DataAvail::CheckLinearizedFirstPage( | 1570 CPDF_DataAvail::DocAvailStatus CPDF_DataAvail::CheckLinearizedFirstPage( |
| 1567 int32_t iPage, | 1571 uint32_t dwPage, |
| 1568 DownloadHints* pHints) { | 1572 DownloadHints* pHints) { |
| 1569 if (!m_bAnnotsLoad) { | 1573 if (!m_bAnnotsLoad) { |
| 1570 if (!CheckPageAnnots(iPage, pHints)) | 1574 if (!CheckPageAnnots(dwPage, pHints)) |
| 1571 return DataNotAvailable; | 1575 return DataNotAvailable; |
| 1572 m_bAnnotsLoad = TRUE; | 1576 m_bAnnotsLoad = TRUE; |
| 1573 } | 1577 } |
| 1574 | 1578 |
| 1575 DocAvailStatus nRet = CheckLinearizedData(pHints); | 1579 DocAvailStatus nRet = CheckLinearizedData(pHints); |
| 1576 if (nRet == DataAvailable) | 1580 if (nRet == DataAvailable) |
| 1577 m_bPageLoadedOK = FALSE; | 1581 m_bPageLoadedOK = FALSE; |
| 1578 return nRet; | 1582 return nRet; |
| 1579 } | 1583 } |
| 1580 | 1584 |
| (...skipping 13 matching lines...) Expand all Loading... |
| 1594 CPDF_Object* pRet = pParentDict->GetObjectBy("Resources"); | 1598 CPDF_Object* pRet = pParentDict->GetObjectBy("Resources"); |
| 1595 if (pRet) { | 1599 if (pRet) { |
| 1596 m_pPageResource = pRet; | 1600 m_pPageResource = pRet; |
| 1597 return TRUE; | 1601 return TRUE; |
| 1598 } | 1602 } |
| 1599 | 1603 |
| 1600 return HaveResourceAncestor(pParentDict); | 1604 return HaveResourceAncestor(pParentDict); |
| 1601 } | 1605 } |
| 1602 | 1606 |
| 1603 CPDF_DataAvail::DocAvailStatus CPDF_DataAvail::IsPageAvail( | 1607 CPDF_DataAvail::DocAvailStatus CPDF_DataAvail::IsPageAvail( |
| 1604 int32_t iPage, | 1608 uint32_t dwPage, |
| 1605 DownloadHints* pHints) { | 1609 DownloadHints* pHints) { |
| 1606 if (!m_pDocument) | 1610 if (!m_pDocument) |
| 1607 return DataError; | 1611 return DataError; |
| 1608 | 1612 |
| 1609 if (IsFirstCheck(iPage)) { | 1613 if (IsFirstCheck(dwPage)) { |
| 1610 m_bCurPageDictLoadOK = FALSE; | 1614 m_bCurPageDictLoadOK = FALSE; |
| 1611 m_bPageLoadedOK = FALSE; | 1615 m_bPageLoadedOK = FALSE; |
| 1612 m_bAnnotsLoad = FALSE; | 1616 m_bAnnotsLoad = FALSE; |
| 1613 m_bNeedDownLoadResource = FALSE; | 1617 m_bNeedDownLoadResource = FALSE; |
| 1614 m_objs_array.RemoveAll(); | 1618 m_objs_array.RemoveAll(); |
| 1615 m_ObjectSet.clear(); | 1619 m_ObjectSet.clear(); |
| 1616 } | 1620 } |
| 1617 | 1621 |
| 1618 if (pdfium::ContainsKey(m_pagesLoadState, iPage)) | 1622 if (pdfium::ContainsKey(m_pagesLoadState, dwPage)) |
| 1619 return DataAvailable; | 1623 return DataAvailable; |
| 1620 | 1624 |
| 1621 if (m_bLinearized) { | 1625 if (m_bLinearized) { |
| 1622 if ((uint32_t)iPage == m_dwFirstPageNo) { | 1626 if (dwPage == m_dwFirstPageNo) { |
| 1623 DocAvailStatus nRet = CheckLinearizedFirstPage(iPage, pHints); | 1627 DocAvailStatus nRet = CheckLinearizedFirstPage(dwPage, pHints); |
| 1624 if (nRet == DataAvailable) | 1628 if (nRet == DataAvailable) |
| 1625 m_pagesLoadState.insert(iPage); | 1629 m_pagesLoadState.insert(dwPage); |
| 1626 return nRet; | 1630 return nRet; |
| 1627 } | 1631 } |
| 1628 | 1632 |
| 1629 DocAvailStatus nResult = CheckLinearizedData(pHints); | 1633 DocAvailStatus nResult = CheckLinearizedData(pHints); |
| 1630 if (nResult != DataAvailable) | 1634 if (nResult != DataAvailable) |
| 1631 return nResult; | 1635 return nResult; |
| 1632 | 1636 |
| 1633 if (m_pHintTables) { | 1637 if (m_pHintTables) { |
| 1634 nResult = m_pHintTables->CheckPage(iPage, pHints); | 1638 nResult = m_pHintTables->CheckPage(dwPage, pHints); |
| 1635 if (nResult != DataAvailable) | 1639 if (nResult != DataAvailable) |
| 1636 return nResult; | 1640 return nResult; |
| 1637 m_pagesLoadState.insert(iPage); | 1641 m_pagesLoadState.insert(dwPage); |
| 1638 return DataAvailable; | 1642 return DataAvailable; |
| 1639 } | 1643 } |
| 1640 | 1644 |
| 1641 if (m_bMainXRefLoadedOK) { | 1645 if (m_bMainXRefLoadedOK) { |
| 1642 if (m_bTotalLoadPageTree) { | 1646 if (m_bTotalLoadPageTree) { |
| 1643 if (!LoadPages(pHints)) | 1647 if (!LoadPages(pHints)) |
| 1644 return DataNotAvailable; | 1648 return DataNotAvailable; |
| 1645 } else { | 1649 } else { |
| 1646 if (!m_bCurPageDictLoadOK && !CheckPage(iPage, pHints)) | 1650 if (!m_bCurPageDictLoadOK && !CheckPage(dwPage, pHints)) |
| 1647 return DataNotAvailable; | 1651 return DataNotAvailable; |
| 1648 } | 1652 } |
| 1649 } else { | 1653 } else { |
| 1650 if (!LoadAllFile(pHints)) | 1654 if (!LoadAllFile(pHints)) |
| 1651 return DataNotAvailable; | 1655 return DataNotAvailable; |
| 1652 m_pDocument->GetParser()->RebuildCrossRef(); | 1656 m_pDocument->GetParser()->RebuildCrossRef(); |
| 1653 ResetFirstCheck(iPage); | 1657 ResetFirstCheck(dwPage); |
| 1654 return DataAvailable; | 1658 return DataAvailable; |
| 1655 } | 1659 } |
| 1656 } else { | 1660 } else { |
| 1657 if (!m_bTotalLoadPageTree && !m_bCurPageDictLoadOK && | 1661 if (!m_bTotalLoadPageTree && !m_bCurPageDictLoadOK && |
| 1658 !CheckPage(iPage, pHints)) { | 1662 !CheckPage(dwPage, pHints)) { |
| 1659 return DataNotAvailable; | 1663 return DataNotAvailable; |
| 1660 } | 1664 } |
| 1661 } | 1665 } |
| 1662 | 1666 |
| 1663 if (m_bHaveAcroForm && !m_bAcroFormLoad) { | 1667 if (m_bHaveAcroForm && !m_bAcroFormLoad) { |
| 1664 if (!CheckAcroFormSubObject(pHints)) | 1668 if (!CheckAcroFormSubObject(pHints)) |
| 1665 return DataNotAvailable; | 1669 return DataNotAvailable; |
| 1666 m_bAcroFormLoad = TRUE; | 1670 m_bAcroFormLoad = TRUE; |
| 1667 } | 1671 } |
| 1668 | 1672 |
| 1669 if (!m_bPageLoadedOK) { | 1673 if (!m_bPageLoadedOK) { |
| 1670 if (!m_objs_array.GetSize()) { | 1674 if (!m_objs_array.GetSize()) { |
| 1671 m_objs_array.RemoveAll(); | 1675 m_objs_array.RemoveAll(); |
| 1672 m_ObjectSet.clear(); | 1676 m_ObjectSet.clear(); |
| 1673 | 1677 |
| 1674 m_pPageDict = m_pDocument->GetPage(iPage); | 1678 FX_SAFE_INT32 safePage = pdfium::base::checked_cast<int32_t>(dwPage); |
| 1679 m_pPageDict = m_pDocument->GetPage(safePage.ValueOrDie()); |
| 1675 if (!m_pPageDict) { | 1680 if (!m_pPageDict) { |
| 1676 ResetFirstCheck(iPage); | 1681 ResetFirstCheck(dwPage); |
| 1677 return DataAvailable; | 1682 return DataAvailable; |
| 1678 } | 1683 } |
| 1679 | 1684 |
| 1680 CFX_ArrayTemplate<CPDF_Object*> obj_array; | 1685 CFX_ArrayTemplate<CPDF_Object*> obj_array; |
| 1681 obj_array.Add(m_pPageDict); | 1686 obj_array.Add(m_pPageDict); |
| 1682 FX_BOOL bRet = IsObjectsAvail(obj_array, TRUE, pHints, m_objs_array); | 1687 FX_BOOL bRet = IsObjectsAvail(obj_array, TRUE, pHints, m_objs_array); |
| 1683 if (!bRet) | 1688 if (!bRet) |
| 1684 return DataNotAvailable; | 1689 return DataNotAvailable; |
| 1685 | 1690 |
| 1686 m_objs_array.RemoveAll(); | 1691 m_objs_array.RemoveAll(); |
| 1687 } else { | 1692 } else { |
| 1688 CFX_ArrayTemplate<CPDF_Object*> new_objs_array; | 1693 CFX_ArrayTemplate<CPDF_Object*> new_objs_array; |
| 1689 FX_BOOL bRet = | 1694 FX_BOOL bRet = |
| 1690 IsObjectsAvail(m_objs_array, FALSE, pHints, new_objs_array); | 1695 IsObjectsAvail(m_objs_array, FALSE, pHints, new_objs_array); |
| 1691 | 1696 |
| 1692 m_objs_array.RemoveAll(); | 1697 m_objs_array.RemoveAll(); |
| 1693 if (!bRet) { | 1698 if (!bRet) { |
| 1694 m_objs_array.Append(new_objs_array); | 1699 m_objs_array.Append(new_objs_array); |
| 1695 return DataNotAvailable; | 1700 return DataNotAvailable; |
| 1696 } | 1701 } |
| 1697 } | 1702 } |
| 1698 m_bPageLoadedOK = TRUE; | 1703 m_bPageLoadedOK = TRUE; |
| 1699 } | 1704 } |
| 1700 | 1705 |
| 1701 if (!m_bAnnotsLoad) { | 1706 if (!m_bAnnotsLoad) { |
| 1702 if (!CheckPageAnnots(iPage, pHints)) | 1707 if (!CheckPageAnnots(dwPage, pHints)) |
| 1703 return DataNotAvailable; | 1708 return DataNotAvailable; |
| 1704 m_bAnnotsLoad = TRUE; | 1709 m_bAnnotsLoad = TRUE; |
| 1705 } | 1710 } |
| 1706 | 1711 |
| 1707 if (m_pPageDict && !m_bNeedDownLoadResource) { | 1712 if (m_pPageDict && !m_bNeedDownLoadResource) { |
| 1708 m_pPageResource = m_pPageDict->GetObjectBy("Resources"); | 1713 m_pPageResource = m_pPageDict->GetObjectBy("Resources"); |
| 1709 if (!m_pPageResource) | 1714 m_bNeedDownLoadResource = |
| 1710 m_bNeedDownLoadResource = HaveResourceAncestor(m_pPageDict); | 1715 m_pPageResource || HaveResourceAncestor(m_pPageDict); |
| 1711 else | |
| 1712 m_bNeedDownLoadResource = TRUE; | |
| 1713 } | 1716 } |
| 1714 | 1717 |
| 1715 if (m_bNeedDownLoadResource) { | 1718 if (m_bNeedDownLoadResource) { |
| 1716 FX_BOOL bRet = CheckResources(pHints); | 1719 if (!CheckResources(pHints)) |
| 1717 if (!bRet) | |
| 1718 return DataNotAvailable; | 1720 return DataNotAvailable; |
| 1719 m_bNeedDownLoadResource = FALSE; | 1721 m_bNeedDownLoadResource = FALSE; |
| 1720 } | 1722 } |
| 1721 | 1723 |
| 1722 m_bPageLoadedOK = FALSE; | 1724 m_bPageLoadedOK = FALSE; |
| 1723 m_bAnnotsLoad = FALSE; | 1725 m_bAnnotsLoad = FALSE; |
| 1724 m_bCurPageDictLoadOK = FALSE; | 1726 m_bCurPageDictLoadOK = FALSE; |
| 1725 | 1727 |
| 1726 ResetFirstCheck(iPage); | 1728 ResetFirstCheck(dwPage); |
| 1727 m_pagesLoadState.insert(iPage); | 1729 m_pagesLoadState.insert(dwPage); |
| 1728 return DataAvailable; | 1730 return DataAvailable; |
| 1729 } | 1731 } |
| 1730 | 1732 |
| 1731 FX_BOOL CPDF_DataAvail::CheckResources(DownloadHints* pHints) { | 1733 FX_BOOL CPDF_DataAvail::CheckResources(DownloadHints* pHints) { |
| 1732 if (!m_objs_array.GetSize()) { | 1734 if (!m_objs_array.GetSize()) { |
| 1733 m_objs_array.RemoveAll(); | 1735 m_objs_array.RemoveAll(); |
| 1734 CFX_ArrayTemplate<CPDF_Object*> obj_array; | 1736 CFX_ArrayTemplate<CPDF_Object*> obj_array; |
| 1735 obj_array.Add(m_pPageResource); | 1737 obj_array.Add(m_pPageResource); |
| 1736 | 1738 |
| 1737 FX_BOOL bRet = IsObjectsAvail(obj_array, TRUE, pHints, m_objs_array); | 1739 FX_BOOL bRet = IsObjectsAvail(obj_array, TRUE, pHints, m_objs_array); |
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1833 return FormAvailable; | 1835 return FormAvailable; |
| 1834 } | 1836 } |
| 1835 | 1837 |
| 1836 CPDF_DataAvail::PageNode::PageNode() : m_type(PDF_PAGENODE_UNKNOWN) {} | 1838 CPDF_DataAvail::PageNode::PageNode() : m_type(PDF_PAGENODE_UNKNOWN) {} |
| 1837 | 1839 |
| 1838 CPDF_DataAvail::PageNode::~PageNode() { | 1840 CPDF_DataAvail::PageNode::~PageNode() { |
| 1839 for (int32_t i = 0; i < m_childNode.GetSize(); ++i) | 1841 for (int32_t i = 0; i < m_childNode.GetSize(); ++i) |
| 1840 delete m_childNode[i]; | 1842 delete m_childNode[i]; |
| 1841 m_childNode.RemoveAll(); | 1843 m_childNode.RemoveAll(); |
| 1842 } | 1844 } |
| OLD | NEW |