| Index: fpdfsdk/fpdfxfa/fpdfxfa_doc.cpp
|
| diff --git a/fpdfsdk/fpdfxfa/fpdfxfa_doc.cpp b/fpdfsdk/fpdfxfa/fpdfxfa_doc.cpp
|
| index 9d8fb42059237ee0bf6c4f7b92eb95f72cb27259..c8aca0d5b032a46acd06af5ee5254c026e9f7529 100644
|
| --- a/fpdfsdk/fpdfxfa/fpdfxfa_doc.cpp
|
| +++ b/fpdfsdk/fpdfxfa/fpdfxfa_doc.cpp
|
| @@ -677,8 +677,8 @@ void CPDFXFA_Document::ExportData(CXFA_FFDoc* hDoc,
|
| continue;
|
| if (!pPDFObj->IsReference())
|
| continue;
|
| - CPDF_Object* pDirectObj = pPDFObj->GetDirect();
|
| - if (!pDirectObj->IsStream())
|
| + CPDF_Stream* pStream = ToStream(pPDFObj->GetDirect());
|
| + if (!pStream)
|
| continue;
|
| if (pPrePDFObj->GetString() == "form") {
|
| m_pXFADocView->GetDoc()->SavePackage(XFA_HASHCODE_Form, &fileWrite,
|
| @@ -698,13 +698,10 @@ void CPDFXFA_Document::ExportData(CXFA_FFDoc* hDoc,
|
| fileWrite.WriteBlock(content.c_str(), fileWrite.GetSize(),
|
| content.GetLength());
|
| }
|
| -
|
| - CPDF_Stream* pStream = (CPDF_Stream*)pDirectObj;
|
| - CPDF_StreamAcc* pAcc = new CPDF_StreamAcc;
|
| + std::unique_ptr<CPDF_StreamAcc> pAcc(new CPDF_StreamAcc);
|
| pAcc->LoadAllData(pStream);
|
| fileWrite.WriteBlock(pAcc->GetData(), fileWrite.GetSize(),
|
| pAcc->GetSize());
|
| - delete pAcc;
|
| }
|
| }
|
| }
|
|
|