Index: fpdfsdk/fpdfsave.cpp |
diff --git a/fpdfsdk/fpdfsave.cpp b/fpdfsdk/fpdfsave.cpp |
index 364f4d2d6f2a7113afe718e878e28245d03a5a26..b5940842188c91be57a587d824c7e15626a3083b 100644 |
--- a/fpdfsdk/fpdfsave.cpp |
+++ b/fpdfsdk/fpdfsave.cpp |
@@ -184,14 +184,12 @@ bool SaveXFADocumentData(CPDFXFA_Document* pDocument, |
if (pDataSetsStream) |
pDataSetsStream->InitStreamFromFile(pDsfileWrite.get(), pDataDict); |
} else { |
- CPDF_Stream* pData = new CPDF_Stream; |
+ CPDF_Stream* pData = pPDFDocument->AddIndirectStream(); |
pData->InitStreamFromFile(pDsfileWrite.get(), pDataDict); |
iLast = pArray->GetCount() - 2; |
- pArray->InsertAt(iLast, new CPDF_String("datasets", FALSE)); |
- pArray->InsertAt( |
- iLast + 1, |
- new CPDF_Reference(pPDFDocument, |
- pPDFDocument->AddIndirectObject(pData))); |
+ pArray->InsertAt(iLast, new CPDF_String("datasets", false)); |
+ pArray->InsertAt(iLast + 1, |
+ new CPDF_Reference(pPDFDocument, pData->GetObjNum())); |
} |
fileList->push_back(std::move(pDsfileWrite)); |
} |
@@ -208,14 +206,12 @@ bool SaveXFADocumentData(CPDFXFA_Document* pDocument, |
if (pFormStream) |
pFormStream->InitStreamFromFile(pfileWrite.get(), pDataDict); |
} else { |
- CPDF_Stream* pData = new CPDF_Stream; |
+ CPDF_Stream* pData = pPDFDocument->AddIndirectStream(); |
pData->InitStreamFromFile(pfileWrite.get(), pDataDict); |
iLast = pArray->GetCount() - 2; |
pArray->InsertAt(iLast, new CPDF_String("form", FALSE)); |
- pArray->InsertAt( |
- iLast + 1, |
- new CPDF_Reference(pPDFDocument, |
- pPDFDocument->AddIndirectObject(pData))); |
+ pArray->InsertAt(iLast + 1, |
+ new CPDF_Reference(pPDFDocument, pData->GetObjNum())); |
} |
fileList->push_back(std::move(pfileWrite)); |
} |