diff options
author | Noel Grandin <noel.grandin@collabora.co.uk> | 2019-06-20 16:03:18 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2019-06-21 08:38:03 +0200 |
commit | 8729c98bbe6843e875be3903c2e5a7783984ae48 (patch) | |
tree | a65a47befd747e1bdfeb5a85c44c4207a8c764ef /sw/source/core/docnode | |
parent | e7e87ad179d5d7383d1b6be58f624ba302c16d73 (diff) |
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>
Diffstat (limited to 'sw/source/core/docnode')
-rw-r--r-- | sw/source/core/docnode/section.cxx | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/sw/source/core/docnode/section.cxx b/sw/source/core/docnode/section.cxx index 3d8704142ff1..8ea531804045 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; } |