diff options
Diffstat (limited to 'fpdfsdk/src/fpdf_dataavail.cpp')
-rw-r--r-- | fpdfsdk/src/fpdf_dataavail.cpp | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/fpdfsdk/src/fpdf_dataavail.cpp b/fpdfsdk/src/fpdf_dataavail.cpp index f4e235ccf5..baf8f9c924 100644 --- a/fpdfsdk/src/fpdf_dataavail.cpp +++ b/fpdfsdk/src/fpdf_dataavail.cpp @@ -122,19 +122,20 @@ FPDFAvail_IsDocAvail(FPDF_AVAIL avail, FX_DOWNLOADHINTS* hints) { DLLEXPORT FPDF_DOCUMENT STDCALL FPDFAvail_GetDocument(FPDF_AVAIL avail, FPDF_BYTESTRING password) { - if (!avail) + CFPDF_DataAvail* pDataAvail = static_cast<CFPDF_DataAvail*>(avail); + if (!pDataAvail) return NULL; + CPDF_Parser* pParser = new CPDF_Parser; pParser->SetPassword(password); - - FX_DWORD err_code = pParser->StartAsynParse( - ((CFPDF_DataAvail*)avail)->m_pDataAvail->GetFileRead()); - if (err_code) { + CPDF_Parser::Error error = + pParser->StartAsynParse(pDataAvail->m_pDataAvail->GetFileRead()); + if (error != CPDF_Parser::SUCCESS) { delete pParser; - ProcessParseError(err_code); + ProcessParseError(error); return NULL; } - ((CFPDF_DataAvail*)avail)->m_pDataAvail->SetDocument(pParser->GetDocument()); + pDataAvail->m_pDataAvail->SetDocument(pParser->GetDocument()); CheckUnSupportError(pParser->GetDocument(), FPDF_ERR_SUCCESS); return FPDFDocumentFromCPDFDocument(pParser->GetDocument()); } |