| Index: fpdfsdk/fpdfxfa/cpdfxfa_docenvironment.cpp
|
| diff --git a/fpdfsdk/fpdfxfa/cpdfxfa_docenvironment.cpp b/fpdfsdk/fpdfxfa/cpdfxfa_docenvironment.cpp
|
| index 6e199e2ff1143effeed99823771a21981b409df8..2b3368bc6096e54673829730a7a96724aef16dce 100644
|
| --- a/fpdfsdk/fpdfxfa/cpdfxfa_docenvironment.cpp
|
| +++ b/fpdfsdk/fpdfxfa/cpdfxfa_docenvironment.cpp
|
| @@ -11,6 +11,7 @@
|
| #include "core/fpdfapi/parser/cpdf_array.h"
|
| #include "core/fpdfapi/parser/cpdf_stream_acc.h"
|
| #include "core/fpdfapi/parser/cpdf_string.h"
|
| +#include "core/fxcrt/cfx_retain_ptr.h"
|
| #include "fpdfsdk/cpdfsdk_formfillenvironment.h"
|
| #include "fpdfsdk/cpdfsdk_interform.h"
|
| #include "fpdfsdk/cpdfsdk_pageview.h"
|
| @@ -437,15 +438,15 @@ void CPDFXFA_DocEnvironment::ExportData(CXFA_FFDoc* hDoc,
|
| if (!pFileHandler)
|
| return;
|
|
|
| - std::unique_ptr<IFX_SeekableStream, ReleaseDeleter<IFX_SeekableStream>>
|
| - fileWrite(MakeSeekableStream(pFileHandler));
|
| + CFX_RetainPtr<IFX_SeekableStream> fileWrite =
|
| + MakeSeekableStream(pFileHandler);
|
| CFX_ByteString content;
|
| if (fileType == FXFA_SAVEAS_XML) {
|
| content = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n";
|
| fileWrite->WriteBlock(content.c_str(), fileWrite->GetSize(),
|
| content.GetLength());
|
| - m_pContext->GetXFADocView()->GetDoc()->SavePackage(
|
| - XFA_HASHCODE_Data, fileWrite.get(), nullptr);
|
| + m_pContext->GetXFADocView()->GetDoc()->SavePackage(XFA_HASHCODE_Data,
|
| + fileWrite, nullptr);
|
| } else if (fileType == FXFA_SAVEAS_XDP) {
|
| if (!m_pContext->GetPDFDoc())
|
| return;
|
| @@ -475,13 +476,13 @@ void CPDFXFA_DocEnvironment::ExportData(CXFA_FFDoc* hDoc,
|
| if (!pStream)
|
| continue;
|
| if (pPrePDFObj->GetString() == "form") {
|
| - m_pContext->GetXFADocView()->GetDoc()->SavePackage(
|
| - XFA_HASHCODE_Form, fileWrite.get(), nullptr);
|
| + m_pContext->GetXFADocView()->GetDoc()->SavePackage(XFA_HASHCODE_Form,
|
| + fileWrite, nullptr);
|
| continue;
|
| }
|
| if (pPrePDFObj->GetString() == "datasets") {
|
| m_pContext->GetXFADocView()->GetDoc()->SavePackage(
|
| - XFA_HASHCODE_Datasets, fileWrite.get(), nullptr);
|
| + XFA_HASHCODE_Datasets, fileWrite, nullptr);
|
| continue;
|
| }
|
| if (i == size - 1) {
|
| @@ -699,7 +700,7 @@ bool CPDFXFA_DocEnvironment::SubmitData(CXFA_FFDoc* hDoc, CXFA_Submit submit) {
|
| return ret;
|
| }
|
|
|
| -IFX_SeekableReadStream* CPDFXFA_DocEnvironment::OpenLinkedFile(
|
| +CFX_RetainPtr<IFX_SeekableReadStream> CPDFXFA_DocEnvironment::OpenLinkedFile(
|
| CXFA_FFDoc* hDoc,
|
| const CFX_WideString& wsLink) {
|
| CPDFSDK_FormFillEnvironment* pFormFillEnv = m_pContext->GetFormFillEnv();
|
| @@ -729,13 +730,13 @@ bool CPDFXFA_DocEnvironment::ExportSubmitFile(FPDF_FILEHANDLER* pFileHandler,
|
| if (!pFormFillEnv)
|
| return false;
|
|
|
| - std::unique_ptr<IFX_SeekableStream, ReleaseDeleter<IFX_SeekableStream>>
|
| - fileStream(MakeSeekableStream(pFileHandler));
|
| + CFX_RetainPtr<IFX_SeekableStream> fileStream =
|
| + MakeSeekableStream(pFileHandler);
|
|
|
| if (fileType == FXFA_SAVEAS_XML) {
|
| const char kContent[] = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n";
|
| fileStream->WriteBlock(kContent, 0, strlen(kContent));
|
| - m_pContext->GetXFADoc()->SavePackage(XFA_HASHCODE_Data, fileStream.get(),
|
| + m_pContext->GetXFADoc()->SavePackage(XFA_HASHCODE_Data, fileStream,
|
| nullptr);
|
| return true;
|
| }
|
| @@ -797,11 +798,11 @@ bool CPDFXFA_DocEnvironment::ExportSubmitFile(FPDF_FILEHANDLER* pFileHandler,
|
| if (pPrePDFObj->GetString() == "form" && !(flag & FXFA_FORM))
|
| continue;
|
| if (pPrePDFObj->GetString() == "form") {
|
| - m_pContext->GetXFADoc()->SavePackage(XFA_HASHCODE_Form, fileStream.get(),
|
| + m_pContext->GetXFADoc()->SavePackage(XFA_HASHCODE_Form, fileStream,
|
| nullptr);
|
| } else if (pPrePDFObj->GetString() == "datasets") {
|
| - m_pContext->GetXFADoc()->SavePackage(XFA_HASHCODE_Datasets,
|
| - fileStream.get(), nullptr);
|
| + m_pContext->GetXFADoc()->SavePackage(XFA_HASHCODE_Datasets, fileStream,
|
| + nullptr);
|
| } else {
|
| // PDF,creator.
|
| }
|
|
|