tdf#125983 CRASH: Updating link to external files
Revert "loplugin:useuniqueptr in lcl_UpdateLinksInSect"
This reverts commit 9abbe6746cb4d36e3ccb384f96ccafb9e0612cd6.
No point in use std::unique_ptr, sometimes pPam points to something
we want to delete, sometimes it does not.
Change-Id: I37e9871b8d5d836b7e52b5b8a5a7c572d92487f5
Reviewed-on: https://gerrit.libreoffice.org/74449
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
diff --git a/sw/source/core/docnode/section.cxx b/sw/source/core/docnode/section.cxx
index 3d87041..8ea5318 100644
--- a/sw/source/core/docnode/section.cxx
+++ b/sw/source/core/docnode/section.cxx
@@ -1196,7 +1196,7 @@ static void lcl_UpdateLinksInSect( SwBaseLink& rUpdLnk, SwSectionNode& rSectNd )
bool bWasVisibleLinks = pDoc->getIDocumentLinksAdministration().IsVisibleLinks();
pDoc->getIDocumentLinksAdministration().SetVisibleLinks( false );
std::unique_ptr<SwPaM> pPam;
SwPaM* pPam;
SwViewShell* pVSh = pDoc->getIDocumentLayoutAccess().GetCurrentViewShell();
SwEditShell* pESh = pDoc->GetEditShell();
pDoc->getIDocumentFieldsAccess().LockExpFields();
@@ -1216,7 +1216,7 @@ static void lcl_UpdateLinksInSect( SwBaseLink& rUpdLnk, SwSectionNode& rSectNd )
--aPos.nNode;
SwDoc::CorrAbs( aIdx, aEndIdx, aPos, true );
pPam.reset(new SwPaM( aPos ));
pPam = new SwPaM( aPos );
// Delete everything succeeding it
--aIdx;
@@ -1399,7 +1399,8 @@ static void lcl_UpdateLinksInSect( SwBaseLink& rUpdLnk, SwSectionNode& rSectNd )
pESh->Push();
SwPaM* pCursor = pESh->GetCursor();
*pCursor->GetPoint() = *pPam->GetPoint();
pPam.reset(pCursor);
delete pPam;
pPam = pCursor;
}
SvMemoryStream aStrm( const_cast<sal_Int8 *>(aSeq.getConstArray()), aSeq.getLength(),
@@ -1434,6 +1435,7 @@ static void lcl_UpdateLinksInSect( SwBaseLink& rUpdLnk, SwSectionNode& rSectNd )
pESh->EndAllAction();
else if( pVSh )
pVSh->EndAction();
delete pPam; // Was created at the start
return SUCCESS;
}