| Index: fpdfsdk/src/fpdfformfill.cpp
|
| diff --git a/fpdfsdk/src/fpdfformfill.cpp b/fpdfsdk/src/fpdfformfill.cpp
|
| index 02f906f5130754739118ce5dc8405e41221b4660..7c2c350501576739df0a7cd4856d3a1f08efbbb4 100644
|
| --- a/fpdfsdk/src/fpdfformfill.cpp
|
| +++ b/fpdfsdk/src/fpdfformfill.cpp
|
| @@ -24,11 +24,12 @@ CPDFSDK_InterForm* FormHandleToInterForm(FPDF_FORMHANDLE hHandle) {
|
|
|
| CPDFSDK_PageView* FormHandleToPageView(FPDF_FORMHANDLE hHandle,
|
| FPDF_PAGE page) {
|
| - if (!page)
|
| + CPDF_Page* pPage = CPDFPageFromFPDFPage(page);
|
| + if (!pPage)
|
| return nullptr;
|
|
|
| CPDFSDK_Document* pSDKDoc = FormHandleToSDKDoc(hHandle);
|
| - return pSDKDoc ? pSDKDoc->GetPageView((CPDF_Page*)page, TRUE) : nullptr;
|
| + return pSDKDoc ? pSDKDoc->GetPageView(pPage, TRUE) : nullptr;
|
| }
|
|
|
| } // namespace
|
| @@ -37,10 +38,11 @@ DLLEXPORT int STDCALL FPDFPage_HasFormFieldAtPoint(FPDF_FORMHANDLE hHandle,
|
| FPDF_PAGE page,
|
| double page_x,
|
| double page_y) {
|
| - if (!page || !hHandle)
|
| + if (!hHandle)
|
| + return -1;
|
| + CPDF_Page* pPage = CPDFPageFromFPDFPage(page);
|
| + if (!pPage)
|
| return -1;
|
| -
|
| - CPDF_Page* pPage = (CPDF_Page*)page;
|
| CPDF_InterForm interform(pPage->m_pDocument, FALSE);
|
| CPDF_FormControl* pFormCtrl = interform.GetControlAtPoint(
|
| pPage, (FX_FLOAT)page_x, (FX_FLOAT)page_y, nullptr);
|
| @@ -48,10 +50,7 @@ DLLEXPORT int STDCALL FPDFPage_HasFormFieldAtPoint(FPDF_FORMHANDLE hHandle,
|
| return -1;
|
|
|
| CPDF_FormField* pFormField = pFormCtrl->GetField();
|
| - if (!pFormField)
|
| - return -1;
|
| -
|
| - return pFormField->GetFieldType();
|
| + return pFormField ? pFormField->GetFieldType() : -1;
|
| }
|
|
|
| DLLEXPORT int STDCALL FPDPage_HasFormFieldAtPoint(FPDF_FORMHANDLE hHandle,
|
| @@ -65,10 +64,11 @@ DLLEXPORT int STDCALL FPDFPage_FormFieldZOrderAtPoint(FPDF_FORMHANDLE hHandle,
|
| FPDF_PAGE page,
|
| double page_x,
|
| double page_y) {
|
| - if (!page || !hHandle)
|
| + if (!hHandle)
|
| + return -1;
|
| + CPDF_Page* pPage = CPDFPageFromFPDFPage(page);
|
| + if (!pPage)
|
| return -1;
|
| -
|
| - CPDF_Page* pPage = (CPDF_Page*)page;
|
| CPDF_InterForm interform(pPage->m_pDocument, FALSE);
|
| int z_order = -1;
|
| (void)interform.GetControlAtPoint(pPage, (FX_FLOAT)page_x, (FX_FLOAT)page_y,
|
| @@ -192,10 +192,13 @@ DLLEXPORT void STDCALL FPDF_FFLDraw(FPDF_FORMHANDLE hHandle,
|
| int size_y,
|
| int rotate,
|
| int flags) {
|
| - if (!hHandle || !page)
|
| + if (!hHandle)
|
| + return;
|
| +
|
| + CPDF_Page* pPage = CPDFPageFromFPDFPage(page);
|
| + if (!pPage)
|
| return;
|
|
|
| - CPDF_Page* pPage = (CPDF_Page*)page;
|
| CPDF_RenderOptions options;
|
| if (flags & FPDF_LCD_TEXT)
|
| options.m_Flags |= RENDER_CLEARTYPE;
|
| @@ -263,14 +266,17 @@ DLLEXPORT void STDCALL FORM_OnAfterLoadPage(FPDF_PAGE page,
|
|
|
| DLLEXPORT void STDCALL FORM_OnBeforeClosePage(FPDF_PAGE page,
|
| FPDF_FORMHANDLE hHandle) {
|
| - if (!hHandle || !page)
|
| + if (!hHandle)
|
| return;
|
|
|
| CPDFSDK_Document* pSDKDoc = ((CPDFDoc_Environment*)hHandle)->GetSDKDocument();
|
| if (!pSDKDoc)
|
| return;
|
|
|
| - CPDF_Page* pPage = (CPDF_Page*)page;
|
| + CPDF_Page* pPage = CPDFPageFromFPDFPage(page);
|
| + if (!pPage)
|
| + return;
|
| +
|
| CPDFSDK_PageView* pPageView = pSDKDoc->GetPageView(pPage, FALSE);
|
| if (pPageView) {
|
| pPageView->SetValid(FALSE);
|
| @@ -316,10 +322,12 @@ DLLEXPORT void STDCALL FORM_DoDocumentAAction(FPDF_FORMHANDLE hHandle,
|
| DLLEXPORT void STDCALL FORM_DoPageAAction(FPDF_PAGE page,
|
| FPDF_FORMHANDLE hHandle,
|
| int aaType) {
|
| - if (!hHandle || !page)
|
| + if (!hHandle)
|
| return;
|
| CPDFSDK_Document* pSDKDoc = ((CPDFDoc_Environment*)hHandle)->GetSDKDocument();
|
| - CPDF_Page* pPage = (CPDF_Page*)page;
|
| + CPDF_Page* pPage = CPDFPageFromFPDFPage(page);
|
| + if (!pPage)
|
| + return;
|
| CPDFSDK_PageView* pPageView = pSDKDoc->GetPageView(pPage, FALSE);
|
| if (pPageView) {
|
| CPDFDoc_Environment* pEnv = pSDKDoc->GetEnv();
|
|
|