diff options
author | Tom Sepez <tsepez@chromium.org> | 2018-05-02 13:33:50 +0000 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2018-05-02 13:33:50 +0000 |
commit | 5f3e4f1605a511c5c3844890172e5395af419d5a (patch) | |
tree | e816943164f2af735b68397934fb5c108aba0806 | |
parent | c9cd2874278e5395a150d8ad08f44bc738bce6be (diff) | |
download | pdfium-5f3e4f1605a511c5c3844890172e5395af419d5a.tar.xz |
Add CPDF_Document::Extension::GetPageCount()
Another virtual API at the CPDF layer, to avoid a compile time
ifdef XFA.
Change-Id: Ia95c4d3b3d3b773aaf45c49ebcadff6b16ca18c6
Reviewed-on: https://pdfium-review.googlesource.com/31910
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-by: dsinclair <dsinclair@chromium.org>
-rw-r--r-- | core/fpdfapi/parser/cpdf_document.h | 1 | ||||
-rw-r--r-- | fpdfsdk/fpdf_view.cpp | 9 | ||||
-rw-r--r-- | fpdfsdk/fpdfxfa/cpdfxfa_context.h | 2 |
3 files changed, 4 insertions, 8 deletions
diff --git a/core/fpdfapi/parser/cpdf_document.h b/core/fpdfapi/parser/cpdf_document.h index 82af1cfd82..759dd682a6 100644 --- a/core/fpdfapi/parser/cpdf_document.h +++ b/core/fpdfapi/parser/cpdf_document.h @@ -45,6 +45,7 @@ class CPDF_Document : public CPDF_IndirectObjectHolder { class Extension { public: virtual ~Extension() {} + virtual int GetPageCount() const = 0; virtual void DeletePage(int page_index) = 0; }; diff --git a/fpdfsdk/fpdf_view.cpp b/fpdfsdk/fpdf_view.cpp index 1eb014a427..ea12bf9896 100644 --- a/fpdfsdk/fpdf_view.cpp +++ b/fpdfsdk/fpdf_view.cpp @@ -329,13 +329,8 @@ FPDF_EXPORT int FPDF_CALLCONV FPDF_GetPageCount(FPDF_DOCUMENT document) { if (!pDoc) return 0; -#ifdef PDF_ENABLE_XFA - auto* pContext = static_cast<CPDFXFA_Context*>(pDoc->GetExtension()); - if (pContext) - return pContext->GetPageCount(); -#endif // PDF_ENABLE_XFA - - return pDoc->GetPageCount(); + auto* pExtension = pDoc->GetExtension(); + return pExtension ? pExtension->GetPageCount() : pDoc->GetPageCount(); } FPDF_EXPORT FPDF_PAGE FPDF_CALLCONV FPDF_LoadPage(FPDF_DOCUMENT document, diff --git a/fpdfsdk/fpdfxfa/cpdfxfa_context.h b/fpdfsdk/fpdfxfa/cpdfxfa_context.h index 8491282d75..23f1ac2220 100644 --- a/fpdfsdk/fpdfxfa/cpdfxfa_context.h +++ b/fpdfsdk/fpdfxfa/cpdfxfa_context.h @@ -56,12 +56,12 @@ class CPDFXFA_Context : public CPDF_Document::Extension, } void SetFormFillEnv(CPDFSDK_FormFillEnvironment* pFormFillEnv); - int GetPageCount() const; RetainPtr<CPDFXFA_Page> GetXFAPage(int page_index); RetainPtr<CPDFXFA_Page> GetXFAPage(CXFA_FFPageView* pPage) const; void ClearChangeMark(); // CPDF_Document::Extension: + int GetPageCount() const override; void DeletePage(int page_index) override; // IFXA_AppProvider: |