From 943ea142b6a7e6edc91fe3c307013129e6eb0ef3 Mon Sep 17 00:00:00 2001 From: Tom Sepez Date: Thu, 15 Oct 2015 16:34:32 -0700 Subject: Introduce CPDFPageFromFPFDPage() Abstracts the way that pages are passed to the embedder between XFA and master. R=thestig@chromium.org Review URL: https://codereview.chromium.org/1406543004 . --- fpdfsdk/src/fpdfdoc.cpp | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) (limited to 'fpdfsdk/src/fpdfdoc.cpp') diff --git a/fpdfsdk/src/fpdfdoc.cpp b/fpdfsdk/src/fpdfdoc.cpp index 05b151e0a7..b770295604 100644 --- a/fpdfsdk/src/fpdfdoc.cpp +++ b/fpdfsdk/src/fpdfdoc.cpp @@ -201,7 +201,10 @@ DLLEXPORT unsigned long STDCALL FPDFDest_GetPageIndex(FPDF_DOCUMENT document, DLLEXPORT FPDF_LINK STDCALL FPDFLink_GetLinkAtPoint(FPDF_PAGE page, double x, double y) { - CPDF_Page* pPage = (CPDF_Page*)page; + CPDF_Page* pPage = CPDFPageFromFPDFPage(page); + if (!pPage) + return nullptr; + CPDF_LinkList* pLinkList = GetLinkList(pPage); if (!pLinkList) return nullptr; @@ -212,7 +215,10 @@ FPDFLink_GetLinkAtPoint(FPDF_PAGE page, double x, double y) { DLLEXPORT int STDCALL FPDFLink_GetLinkZOrderAtPoint(FPDF_PAGE page, double x, double y) { - CPDF_Page* pPage = (CPDF_Page*)page; + CPDF_Page* pPage = CPDFPageFromFPDFPage(page); + if (!pPage) + return -1; + CPDF_LinkList* pLinkList = GetLinkList(pPage); if (!pLinkList) return -1; @@ -251,10 +257,10 @@ DLLEXPORT FPDF_ACTION STDCALL FPDFLink_GetAction(FPDF_LINK pDict) { DLLEXPORT FPDF_BOOL STDCALL FPDFLink_Enumerate(FPDF_PAGE page, int* startPos, FPDF_LINK* linkAnnot) { - if (!page || !startPos || !linkAnnot) + if (!startPos || !linkAnnot) return FALSE; - CPDF_Page* pPage = (CPDF_Page*)page; - if (!pPage->m_pFormDict) + CPDF_Page* pPage = CPDFPageFromFPDFPage(page); + if (!pPage || !pPage->m_pFormDict) return FALSE; CPDF_Array* pAnnots = pPage->m_pFormDict->GetArray("Annots"); if (!pAnnots) -- cgit v1.2.3