diff options
author | Artem Strygin <art-snake@yandex-team.ru> | 2017-09-29 16:36:50 +0300 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2017-10-02 16:15:29 +0000 |
commit | 73784e81928a664169f0ae013707fdfb0e82e70d (patch) | |
tree | 5ab0f7b9db0de50ebf4c03da3e614e35b7fbd667 | |
parent | 522e100534c78b026d170d5625c1e72046a6953c (diff) | |
download | pdfium-73784e81928a664169f0ae013707fdfb0e82e70d.tar.xz |
Allow to use null FX_DOWNLOADHINTS to check data availability
This is allow us check document/pages/form availability using
FPDFAvail_IsXXAvail without download requests.
Change-Id: Ie4525147d8b8e98573d53b2e5b456b632a8a1951
Reviewed-on: https://pdfium-review.googlesource.com/13030
Reviewed-by: dsinclair <dsinclair@chromium.org>
Commit-Queue: Art Snake <art-snake@yandex-team.ru>
-rw-r--r-- | fpdfsdk/fpdf_dataavail.cpp | 9 | ||||
-rw-r--r-- | public/fpdf_dataavail.h | 5 |
2 files changed, 10 insertions, 4 deletions
diff --git a/fpdfsdk/fpdf_dataavail.cpp b/fpdfsdk/fpdf_dataavail.cpp index f781a3d59f..3e1f713477 100644 --- a/fpdfsdk/fpdf_dataavail.cpp +++ b/fpdfsdk/fpdf_dataavail.cpp @@ -92,7 +92,8 @@ class FPDF_DownloadHintsContext : public CPDF_DataAvail::DownloadHints { public: // IFX_DownloadHints void AddSegment(FX_FILESIZE offset, uint32_t size) override { - m_pDownloadHints->AddSegment(m_pDownloadHints, offset, size); + if (m_pDownloadHints) + m_pDownloadHints->AddSegment(m_pDownloadHints, offset, size); } private: @@ -134,7 +135,7 @@ FPDF_EXPORT void FPDF_CALLCONV FPDFAvail_Destroy(FPDF_AVAIL avail) { FPDF_EXPORT int FPDF_CALLCONV FPDFAvail_IsDocAvail(FPDF_AVAIL avail, FX_DOWNLOADHINTS* hints) { - if (!avail || !hints) + if (!avail) return PDF_DATA_ERROR; FPDF_DownloadHintsContext hints_context(hints); return FPDFAvailContextFromFPDFAvail(avail)->m_pDataAvail->IsDocAvail( @@ -170,7 +171,7 @@ FPDF_EXPORT int FPDF_CALLCONV FPDFAvail_GetFirstPageNum(FPDF_DOCUMENT doc) { FPDF_EXPORT int FPDF_CALLCONV FPDFAvail_IsPageAvail(FPDF_AVAIL avail, int page_index, FX_DOWNLOADHINTS* hints) { - if (!avail || !hints) + if (!avail) return PDF_DATA_ERROR; if (page_index < 0) return PDF_DATA_NOTAVAIL; @@ -181,7 +182,7 @@ FPDF_EXPORT int FPDF_CALLCONV FPDFAvail_IsPageAvail(FPDF_AVAIL avail, FPDF_EXPORT int FPDF_CALLCONV FPDFAvail_IsFormAvail(FPDF_AVAIL avail, FX_DOWNLOADHINTS* hints) { - if (!avail || !hints) + if (!avail) return PDF_FORM_ERROR; FPDF_DownloadHintsContext hints_context(hints); return FPDFAvailContextFromFPDFAvail(avail)->m_pDataAvail->IsFormAvail( diff --git a/public/fpdf_dataavail.h b/public/fpdf_dataavail.h index 12a77146d7..3ce92110ac 100644 --- a/public/fpdf_dataavail.h +++ b/public/fpdf_dataavail.h @@ -103,6 +103,7 @@ typedef struct _FX_DOWNLOADHINTS { // Applications should call this function whenever new data arrives, and process // all the generated download hints, if any, until the function returns // |PDF_DATA_ERROR| or |PDF_DATA_AVAIL|. +// if hints is nullptr, the function just check current document availability. // // Once all data is available, call |FPDFAvail_GetDocument| to get a document // handle. @@ -150,6 +151,8 @@ FPDF_EXPORT int FPDF_CALLCONV FPDFAvail_GetFirstPageNum(FPDF_DOCUMENT doc); // all the generated download |hints|, if any, until this function returns // |PDF_DATA_ERROR| or |PDF_DATA_AVAIL|. Applications can then perform page // loading. +// if hints is nullptr, the function just check current availability of +// specified page. FPDF_EXPORT int FPDF_CALLCONV FPDFAvail_IsPageAvail(FPDF_AVAIL avail, int page_index, FX_DOWNLOADHINTS* hints); @@ -171,6 +174,8 @@ FPDF_EXPORT int FPDF_CALLCONV FPDFAvail_IsPageAvail(FPDF_AVAIL avail, // The application should call this function whenever new data arrives and // process all the generated download |hints|, if any, until the function // |PDF_FORM_ERROR|, |PDF_FORM_AVAIL| or |PDF_FORM_NOTEXIST|. +// if hints is nullptr, the function just check current form availability. +// // Applications can then perform page loading. It is recommend to call // |FPDFDOC_InitFormFillEnvironment| when |PDF_FORM_AVAIL| is returned. FPDF_EXPORT int FPDF_CALLCONV FPDFAvail_IsFormAvail(FPDF_AVAIL avail, |