| Index: core/fpdfapi/edit/fpdf_edit_create.cpp
|
| diff --git a/core/fpdfapi/edit/fpdf_edit_create.cpp b/core/fpdfapi/edit/fpdf_edit_create.cpp
|
| index a578a0a1141c81f80a64634c54c098b7ae428fed..c823ab01e16d80b3d220030794edb062e7611a0c 100644
|
| --- a/core/fpdfapi/edit/fpdf_edit_create.cpp
|
| +++ b/core/fpdfapi/edit/fpdf_edit_create.cpp
|
| @@ -404,7 +404,7 @@ class CPDF_FlateEncoder {
|
|
|
| void CPDF_FlateEncoder::CloneDict() {
|
| if (!m_bCloned) {
|
| - m_pDict = ToDictionary(m_pDict->Clone());
|
| + m_pDict = ToDictionary(m_pDict->Clone().release());
|
| ASSERT(m_pDict);
|
| m_bCloned = true;
|
| }
|
| @@ -425,7 +425,7 @@ CPDF_FlateEncoder::CPDF_FlateEncoder(CPDF_Stream* pStream, bool bFlateEncode)
|
| destAcc.LoadAllData(pStream);
|
| m_dwSize = destAcc.GetSize();
|
| m_pData = (uint8_t*)destAcc.DetachData();
|
| - m_pDict = ToDictionary(pStream->GetDict()->Clone());
|
| + m_pDict = ToDictionary(pStream->GetDict()->Clone().release());
|
| m_pDict->RemoveFor("Filter");
|
| m_bNewData = true;
|
| m_bCloned = true;
|
| @@ -441,7 +441,7 @@ CPDF_FlateEncoder::CPDF_FlateEncoder(CPDF_Stream* pStream, bool bFlateEncode)
|
| m_bCloned = true;
|
| // TODO(thestig): Move to Init() and check return value.
|
| ::FlateEncode(m_Acc.GetData(), m_Acc.GetSize(), &m_pData, &m_dwSize);
|
| - m_pDict = ToDictionary(pStream->GetDict()->Clone());
|
| + m_pDict = ToDictionary(pStream->GetDict()->Clone().release());
|
| m_pDict->SetIntegerFor("Length", m_dwSize);
|
| m_pDict->SetNameFor("Filter", "FlateDecode");
|
| m_pDict->RemoveFor("DecodeParms");
|
| @@ -1931,7 +1931,7 @@ void CPDF_Creator::InitID(bool bDefault) {
|
| m_pIDArray.reset(new CPDF_Array);
|
| CPDF_Object* pID1 = pOldIDArray ? pOldIDArray->GetObjectAt(0) : nullptr;
|
| if (pID1) {
|
| - m_pIDArray->Add(pID1->Clone());
|
| + m_pIDArray->Add(pID1->Clone().release());
|
| } else {
|
| std::vector<uint8_t> buffer =
|
| PDF_GenerateFileID((uint32_t)(uintptr_t) this, m_dwLastObjNum);
|
| @@ -1945,7 +1945,7 @@ void CPDF_Creator::InitID(bool bDefault) {
|
| if (pOldIDArray) {
|
| CPDF_Object* pID2 = pOldIDArray->GetObjectAt(1);
|
| if ((m_dwFlags & FPDFCREATE_INCREMENTAL) && m_pEncryptDict && pID2) {
|
| - m_pIDArray->Add(pID2->Clone());
|
| + m_pIDArray->Add(pID2->Clone().release());
|
| return;
|
| }
|
| std::vector<uint8_t> buffer =
|
| @@ -1954,7 +1954,7 @@ void CPDF_Creator::InitID(bool bDefault) {
|
| m_pIDArray->Add(new CPDF_String(bsBuffer, true));
|
| return;
|
| }
|
| - m_pIDArray->Add(m_pIDArray->GetObjectAt(0)->Clone());
|
| + m_pIDArray->Add(m_pIDArray->GetObjectAt(0)->Clone().release());
|
| if (m_pEncryptDict && !pOldIDArray && m_pParser && bNewId) {
|
| if (m_pEncryptDict->GetStringFor("Filter") == "Standard") {
|
| CFX_ByteString user_pass = m_pParser->GetPassword();
|
|
|