| Index: xfa/fxfa/parser/cxfa_dataexporter.cpp
|
| diff --git a/xfa/fxfa/parser/cxfa_dataexporter.cpp b/xfa/fxfa/parser/cxfa_dataexporter.cpp
|
| index f97e8a34ed3a0544920dc19d20eced377b4e1265..9760261baf94288f866d8f9b36955b9b1f080793 100644
|
| --- a/xfa/fxfa/parser/cxfa_dataexporter.cpp
|
| +++ b/xfa/fxfa/parser/cxfa_dataexporter.cpp
|
| @@ -197,17 +197,20 @@ void RegenerateFormFile_Changed(CXFA_Node* pNode,
|
| if (!pRichTextXML)
|
| break;
|
|
|
| - IFX_MemoryStream* pMemStream = IFX_MemoryStream::Create(true);
|
| + CFX_RetainPtr<IFX_MemoryStream> pMemStream =
|
| + IFX_MemoryStream::Create(true);
|
| +
|
| + // Note: ambiguous without cast below.
|
| IFGAS_Stream* pTempStream = IFGAS_Stream::CreateStream(
|
| - (IFX_SeekableWriteStream*)pMemStream, FX_STREAMACCESS_Text |
|
| - FX_STREAMACCESS_Write |
|
| - FX_STREAMACCESS_Append);
|
| + CFX_RetainPtr<IFX_SeekableWriteStream>(pMemStream),
|
| + FX_STREAMACCESS_Text | FX_STREAMACCESS_Write |
|
| + FX_STREAMACCESS_Append);
|
| +
|
| pTempStream->SetCodePage(FX_CODEPAGE_UTF8);
|
| pRichTextXML->SaveXMLNode(pTempStream);
|
| wsChildren += CFX_WideString::FromUTF8(
|
| CFX_ByteStringC(pMemStream->GetBuffer(), pMemStream->GetSize()));
|
| pTempStream->Release();
|
| - pMemStream->Release();
|
| } else if (pRawValueNode->GetElementType() == XFA_Element::Sharpxml &&
|
| wsContentType == FX_WSTRC(L"text/xml")) {
|
| CFX_WideString wsRawValue;
|
| @@ -444,18 +447,20 @@ CXFA_DataExporter::CXFA_DataExporter(CXFA_Document* pDocument)
|
| ASSERT(m_pDocument);
|
| }
|
|
|
| -bool CXFA_DataExporter::Export(IFX_SeekableWriteStream* pWrite) {
|
| +bool CXFA_DataExporter::Export(
|
| + const CFX_RetainPtr<IFX_SeekableWriteStream>& pWrite) {
|
| return Export(pWrite, m_pDocument->GetRoot(), 0, nullptr);
|
| }
|
|
|
| -bool CXFA_DataExporter::Export(IFX_SeekableWriteStream* pWrite,
|
| - CXFA_Node* pNode,
|
| - uint32_t dwFlag,
|
| - const FX_CHAR* pChecksum) {
|
| - if (!pWrite) {
|
| - ASSERT(false);
|
| +bool CXFA_DataExporter::Export(
|
| + const CFX_RetainPtr<IFX_SeekableWriteStream>& pWrite,
|
| + CXFA_Node* pNode,
|
| + uint32_t dwFlag,
|
| + const FX_CHAR* pChecksum) {
|
| + ASSERT(pWrite);
|
| + if (!pWrite)
|
| return false;
|
| - }
|
| +
|
| IFGAS_Stream* pStream = IFGAS_Stream::CreateStream(
|
| pWrite,
|
| FX_STREAMACCESS_Text | FX_STREAMACCESS_Write | FX_STREAMACCESS_Append);
|
|
|