| Index: fpdfsdk/src/fpdfview.cpp
|
| diff --git a/fpdfsdk/src/fpdfview.cpp b/fpdfsdk/src/fpdfview.cpp
|
| index e58c53646baadd2cd6b67e69d22d0196663ceb15..bd7741d1e8e2598ba5f8370f319f13149d57f628 100644
|
| --- a/fpdfsdk/src/fpdfview.cpp
|
| +++ b/fpdfsdk/src/fpdfview.cpp
|
| @@ -26,6 +26,10 @@ CPDF_Document* CPDFDocumentFromFPDFDocument(FPDF_DOCUMENT doc) {
|
| return doc ? static_cast<CPDFXFA_Document*>(doc)->GetPDFDoc() : nullptr;
|
| }
|
|
|
| +FPDF_DOCUMENT FPDFDocumentFromCPDFDocument(CPDF_Document* doc) {
|
| + return doc ? new CPDFXFA_Document(doc, CPDFXFA_App::GetInstance()) : nullptr;
|
| +}
|
| +
|
| CPDF_Page* CPDFPageFromFPDFPage(FPDF_PAGE page) {
|
| return page ? static_cast<CPDFXFA_Page*>(page)->GetPDFPage() : nullptr;
|
| }
|
| @@ -351,12 +355,7 @@ DLLEXPORT FPDF_DOCUMENT STDCALL FPDF_LoadMemDocument(const void* data_buf,
|
| CPDF_Document* pDoc = NULL;
|
| pDoc = pParser ? pParser->GetDocument() : NULL;
|
| CheckUnSupportError(pDoc, err_code);
|
| - CPDF_Document* pPDFDoc = pParser->GetDocument();
|
| - if (!pPDFDoc)
|
| - return NULL;
|
| -
|
| - CPDFXFA_App* pProvider = CPDFXFA_App::GetInstance();
|
| - return new CPDFXFA_Document(pPDFDoc, pProvider);
|
| + return FPDFDocumentFromCPDFDocument(pParser->GetDocument());
|
| }
|
|
|
| DLLEXPORT FPDF_DOCUMENT STDCALL
|
| @@ -374,12 +373,7 @@ FPDF_LoadCustomDocument(FPDF_FILEACCESS* pFileAccess,
|
| CPDF_Document* pDoc = NULL;
|
| pDoc = pParser ? pParser->GetDocument() : NULL;
|
| CheckUnSupportError(pDoc, err_code);
|
| - CPDF_Document* pPDFDoc = pParser->GetDocument();
|
| - if (!pPDFDoc)
|
| - return NULL;
|
| -
|
| - CPDFXFA_App* pProvider = CPDFXFA_App::GetInstance();
|
| - return new CPDFXFA_Document(pPDFDoc, pProvider);
|
| + return FPDFDocumentFromCPDFDocument(pParser->GetDocument());
|
| }
|
|
|
| DLLEXPORT FPDF_BOOL STDCALL FPDF_GetFileVersion(FPDF_DOCUMENT doc,
|
| @@ -437,15 +431,13 @@ DLLEXPORT FPDF_PAGE STDCALL FPDF_LoadPage(FPDF_DOCUMENT document,
|
| }
|
|
|
| DLLEXPORT double STDCALL FPDF_GetPageWidth(FPDF_PAGE page) {
|
| - if (!page)
|
| - return 0.0;
|
| - return ((CPDFXFA_Page*)page)->GetPageWidth();
|
| + CPDFXFA_Page* pPage = static_cast<CPDFXFA_Page*>(page);
|
| + return pPage ? pPage->GetPageWidth() : 0.0;
|
| }
|
|
|
| DLLEXPORT double STDCALL FPDF_GetPageHeight(FPDF_PAGE page) {
|
| - if (!page)
|
| - return 0.0;
|
| - return ((CPDFXFA_Page*)page)->GetPageHeight();
|
| + CPDFXFA_Page* pPage = static_cast<CPDFXFA_Page*>(page);
|
| + return pPage ? pPage->GetPageHeight() : 0.0;
|
| }
|
|
|
| void DropContext(void* data) {
|
| @@ -1018,8 +1010,8 @@ DLLEXPORT FPDF_DEST STDCALL FPDF_GetNamedDest(FPDF_DOCUMENT document,
|
| *buflen = 0;
|
| if (!document || index < 0)
|
| return NULL;
|
| - CPDF_Document* pDoc = ((CPDFXFA_Document*)document)->GetPDFDoc();
|
|
|
| + CPDF_Document* pDoc = CPDFDocumentFromFPDFDocument(document);
|
| CPDF_Dictionary* pRoot = pDoc->GetRoot();
|
| if (!pRoot)
|
| return NULL;
|
|
|