sw/source/core/access/accpara.cxx | 4 ++-- sw/source/core/crsr/crsrsh.cxx | 16 ++++++++-------- sw/source/core/edit/eddel.cxx | 6 +++--- sw/source/core/undo/rolbck.cxx | 16 ++++++++-------- sw/source/core/undo/unredln.cxx | 4 +--- sw/source/core/unocore/unorefmk.cxx | 10 ++++++---- sw/source/filter/ascii/parasc.cxx | 4 ++-- sw/source/filter/basflt/shellio.cxx | 4 ++-- sw/source/uibase/app/docsh2.cxx | 4 ++-- sw/source/uibase/wrtsh/wrtsh2.cxx | 8 ++++---- 10 files changed, 38 insertions(+), 38 deletions(-)
New commits: commit e8edc8edbf820d8358b465b92e697eb6831d23de Author: Noel Grandin <[email protected]> AuthorDate: Fri Sep 24 13:41:24 2021 +0200 Commit: Noel Grandin <[email protected]> CommitDate: Fri Sep 24 18:58:16 2021 +0200 no need to allocate these SwPaM on the heap Change-Id: Ief142e6410599ea50aee4065d843d7eaea55e21c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122578 Tested-by: Jenkins Reviewed-by: Noel Grandin <[email protected]> diff --git a/sw/source/core/access/accpara.cxx b/sw/source/core/access/accpara.cxx index 9aed81d4759e..6d75fe4abf86 100644 --- a/sw/source/core/access/accpara.cxx +++ b/sw/source/core/access/accpara.cxx @@ -1630,7 +1630,7 @@ void SwAccessibleParagraph::_getRunAttributesImpl( tAccParaPropValMap& rRunAttrSeq ) { // create PaM for character at position <nIndex> - std::unique_ptr<SwPaM> pPaM; + std::optional<SwPaM> pPaM; const TextFrameIndex nCorePos(GetPortionData().GetCoreViewPosition(nIndex)); SwTextFrame const*const pFrame(static_cast<SwTextFrame const*>(GetFrame())); SwPosition const aModelPos(pFrame->MapViewToModelPos(nCorePos)); @@ -1640,7 +1640,7 @@ void SwAccessibleParagraph::_getRunAttributesImpl( aModelPos.nContent.GetIndex() == pTextNode->Len() ? pTextNode->Len() // ??? : aModelPos.nContent.GetIndex() + 1); - pPaM.reset(new SwPaM(aModelPos, aEndPos)); + pPaM.emplace(aModelPos, aEndPos); } // retrieve character attributes for the created PaM <pPaM> diff --git a/sw/source/core/crsr/crsrsh.cxx b/sw/source/core/crsr/crsrsh.cxx index 7bce5b73b488..7c6b94df2da4 100644 --- a/sw/source/core/crsr/crsrsh.cxx +++ b/sw/source/core/crsr/crsrsh.cxx @@ -2874,7 +2874,7 @@ void SwCursorShell::ParkCursor( const SwNodeIndex &rIdx ) SwNode *pNode = &rIdx.GetNode(); // create a new PaM - std::unique_ptr<SwPaM> pNew( new SwPaM( *GetCursor()->GetPoint() ) ); + SwPaM aNew( *GetCursor()->GetPoint() ); if( pNode->GetStartNode() ) { pNode = pNode->StartOfSectionNode(); @@ -2882,18 +2882,18 @@ void SwCursorShell::ParkCursor( const SwNodeIndex &rIdx ) { // the given node is in a table, thus park cursor to table node // (outside of the table) - pNew->GetPoint()->nNode = *pNode->StartOfSectionNode(); + aNew.GetPoint()->nNode = *pNode->StartOfSectionNode(); } else // Also on the start node itself. Then we need to request the start // node always via its end node! (StartOfSelection of StartNode is // the parent) - pNew->GetPoint()->nNode = *pNode->EndOfSectionNode()->StartOfSectionNode(); + aNew.GetPoint()->nNode = *pNode->EndOfSectionNode()->StartOfSectionNode(); } else - pNew->GetPoint()->nNode = *pNode->StartOfSectionNode(); - pNew->SetMark(); - pNew->GetPoint()->nNode = *pNode->EndOfSectionNode(); + aNew.GetPoint()->nNode = *pNode->StartOfSectionNode(); + aNew.SetMark(); + aNew.GetPoint()->nNode = *pNode->EndOfSectionNode(); // take care of all shells for(SwViewShell& rTmp : GetRingContainer()) @@ -2901,9 +2901,9 @@ void SwCursorShell::ParkCursor( const SwNodeIndex &rIdx ) if( auto pSh = dynamic_cast<SwCursorShell *>(&rTmp)) { if (pSh->m_pStackCursor) - pSh->ParkPams(pNew.get(), &pSh->m_pStackCursor); + pSh->ParkPams(&aNew, &pSh->m_pStackCursor); - pSh->ParkPams( pNew.get(), &pSh->m_pCurrentCursor ); + pSh->ParkPams( &aNew, &pSh->m_pCurrentCursor ); if( pSh->m_pTableCursor ) { // set table cursor always to 0 and the current one always to diff --git a/sw/source/core/edit/eddel.cxx b/sw/source/core/edit/eddel.cxx index 87999e1f869e..94eb7f36abb6 100644 --- a/sw/source/core/edit/eddel.cxx +++ b/sw/source/core/edit/eddel.cxx @@ -91,12 +91,12 @@ void SwEditShell::DeleteSel( SwPaM& rPam, bool* pUndo ) } else { - std::unique_ptr<SwPaM> pNewPam; + std::optional<SwPaM> pNewPam; SwPaM * pPam = &rPam; if (bSelectAll) { assert(dynamic_cast<SwShellCursor*>(&rPam)); // must be corrected pam - pNewPam.reset(new SwPaM(*rPam.GetMark(), *rPam.GetPoint())); + pNewPam.emplace(*rPam.GetMark(), *rPam.GetPoint()); // Selection starts at the first para of the first cell, but we // want to delete the table node before the first cell as well. while (SwTableNode const* pTableNode = @@ -111,7 +111,7 @@ void SwEditShell::DeleteSel( SwPaM& rPam, bool* pUndo ) pNewPam->Start()->nNode = *pSectionNode; } pNewPam->Start()->nContent.Assign(nullptr, 0); - pPam = pNewPam.get(); + pPam = &*pNewPam; } // delete everything GetDoc()->getIDocumentContentOperations().DeleteAndJoin(*pPam); diff --git a/sw/source/core/undo/rolbck.cxx b/sw/source/core/undo/rolbck.cxx index b214da51543d..824874f4a3e0 100644 --- a/sw/source/core/undo/rolbck.cxx +++ b/sw/source/core/undo/rolbck.cxx @@ -644,7 +644,7 @@ void SwHistoryBookmark::SetInDoc( SwDoc* pDoc, bool ) SwNodes& rNds = pDoc->GetNodes(); IDocumentMarkAccess* pMarkAccess = pDoc->getIDocumentMarkAccess(); - std::unique_ptr<SwPaM> pPam; + std::optional<SwPaM> pPam; ::sw::mark::IMark* pMark = nullptr; if(m_bSavePos) @@ -656,12 +656,12 @@ void SwHistoryBookmark::SetInDoc( SwDoc* pDoc, bool ) // #111660# don't crash when nNode1 doesn't point to content node. if(pContentNd) - pPam.reset(new SwPaM(*pContentNd, m_nContent)); + pPam.emplace(*pContentNd, m_nContent); } else { pMark = *pMarkAccess->findMark(m_aName); - pPam.reset(new SwPaM(pMark->GetMarkPos())); + pPam.emplace(pMark->GetMarkPos()); } if(m_bSaveOtherPos) @@ -671,7 +671,7 @@ void SwHistoryBookmark::SetInDoc( SwDoc* pDoc, bool ) "<SwHistoryBookmark::SetInDoc(..)>" " - wrong node for a mark"); - if (pPam != nullptr && pContentNd) + if (pPam && pContentNd) { pPam->SetMark(); pPam->GetMark()->nNode = m_nOtherNode; @@ -739,11 +739,11 @@ void SwHistoryNoTextFieldmark::SetInDoc(SwDoc* pDoc, bool) ::sw::UndoGuard const undoGuard(pDoc->GetIDocumentUndoRedo()); SwNodes& rNds = pDoc->GetNodes(); - std::unique_ptr<SwPaM> pPam; + std::optional<SwPaM> pPam; const SwContentNode* pContentNd = rNds[m_nNode]->GetContentNode(); if(pContentNd) - pPam.reset(new SwPaM(*pContentNd, m_nContent)); + pPam.emplace(*pContentNd, m_nContent); if (pPam) { @@ -757,11 +757,11 @@ void SwHistoryNoTextFieldmark::ResetInDoc(SwDoc& rDoc) ::sw::UndoGuard const undoGuard(rDoc.GetIDocumentUndoRedo()); SwNodes& rNds = rDoc.GetNodes(); - std::unique_ptr<SwPaM> pPam; + std::optional<SwPaM> pPam; const SwContentNode* pContentNd = rNds[m_nNode]->GetContentNode(); if(pContentNd) - pPam.reset(new SwPaM(*pContentNd, m_nContent-1)); + pPam.emplace(*pContentNd, m_nContent-1); if (pPam) { diff --git a/sw/source/core/undo/unredln.cxx b/sw/source/core/undo/unredln.cxx index 38caba313d8d..ec874cf93a28 100644 --- a/sw/source/core/undo/unredln.cxx +++ b/sw/source/core/undo/unredln.cxx @@ -128,9 +128,7 @@ void SwUndoRedline::UndoImpl(::sw::UndoRedoContext & rContext) rPam = *pRedline; else { - std::unique_ptr<SwPaM> pNewPam; - pNewPam.reset(new SwPaM(*pRedline->GetMark(), *rPam.GetPoint())); - rPam = *pNewPam; + rPam = SwPaM(*pRedline->GetMark(), *rPam.GetPoint()); } } } diff --git a/sw/source/core/unocore/unorefmk.cxx b/sw/source/core/unocore/unorefmk.cxx index fd656af16a36..536aee4f4d16 100644 --- a/sw/source/core/unocore/unorefmk.cxx +++ b/sw/source/core/unocore/unorefmk.cxx @@ -310,10 +310,12 @@ SwXReferenceMark::getAnchor() &m_pImpl->m_pDoc->GetNodes())) { SwTextNode const& rTextNode = pTextMark->GetTextNode(); - const std::unique_ptr<SwPaM> pPam( (pTextMark->End()) - ? new SwPaM( rTextNode, *pTextMark->End(), - rTextNode, pTextMark->GetStart()) - : new SwPaM( rTextNode, pTextMark->GetStart()) ); + std::optional<SwPaM> pPam; + if ( pTextMark->End() ) + pPam.emplace( rTextNode, *pTextMark->End(), + rTextNode, pTextMark->GetStart()); + else + pPam.emplace( rTextNode, pTextMark->GetStart()); return SwXTextRange::CreateXTextRange( *m_pImpl->m_pDoc, *pPam->Start(), pPam->End()); diff --git a/sw/source/filter/ascii/parasc.cxx b/sw/source/filter/ascii/parasc.cxx index e57a03557637..c2312effadcc 100644 --- a/sw/source/filter/ascii/parasc.cxx +++ b/sw/source/filter/ascii/parasc.cxx @@ -155,12 +155,12 @@ ErrCode SwASCIIParser::CallParser() ::StartProgress(STR_STATSTR_W4WREAD, 0, m_nFileSize, m_rDoc.GetDocShell()); - std::unique_ptr<SwPaM> pInsPam; + std::optional<SwPaM> pInsPam; sal_Int32 nSttContent = 0; if (!m_bNewDoc) { const SwNodeIndex& rTmp = m_pPam->GetPoint()->nNode; - pInsPam.reset(new SwPaM( rTmp, rTmp, 0, -1 )); + pInsPam.emplace( rTmp, rTmp, 0, -1 ); nSttContent = m_pPam->GetPoint()->nContent.GetIndex(); } diff --git a/sw/source/filter/basflt/shellio.cxx b/sw/source/filter/basflt/shellio.cxx index 272e36a8ec6c..73cdb8d25caf 100644 --- a/sw/source/filter/basflt/shellio.cxx +++ b/sw/source/filter/basflt/shellio.cxx @@ -165,12 +165,12 @@ ErrCode SwReader::Read( const Reader& rOptions ) mxDoc->getIDocumentRedlineAccess().SetRedlineFlags_intern( RedlineFlags::Ignore ); - std::unique_ptr<SwPaM> pUndoPam; + std::optional<SwPaM> pUndoPam; if( bDocUndo || mpCursor ) { // set Pam to the previous node, so that it is not also moved const SwNodeIndex& rTmp = pPam->GetPoint()->nNode; - pUndoPam.reset(new SwPaM( rTmp, rTmp, 0, -1 )); + pUndoPam.emplace( rTmp, rTmp, 0, -1 ); } // store for now all Fly's diff --git a/sw/source/uibase/app/docsh2.cxx b/sw/source/uibase/app/docsh2.cxx index 54ffca724071..558e235bd318 100644 --- a/sw/source/uibase/app/docsh2.cxx +++ b/sw/source/uibase/app/docsh2.cxx @@ -1590,13 +1590,13 @@ ErrCode SwDocShell::LoadStylesFromFile(const OUString& rURL, SwgReaderOption& rO { Reader* pRead = ReadXML; SwReaderPtr pReader; - std::unique_ptr<SwPaM> pPam; + std::optional<SwPaM> pPam; // the SW3IO - Reader need the pam/wrtshell, because only then he // insert the styles! if( bUnoCall ) { SwNodeIndex aIdx( m_xDoc->GetNodes().GetEndOfContent(), -1 ); - pPam.reset(new SwPaM( aIdx )); + pPam.emplace( aIdx ); pReader.reset(new SwReader( aMed, rURL, *pPam )); } else diff --git a/sw/source/uibase/wrtsh/wrtsh2.cxx b/sw/source/uibase/wrtsh/wrtsh2.cxx index 90f08fd33a81..a4f050492328 100644 --- a/sw/source/uibase/wrtsh/wrtsh2.cxx +++ b/sw/source/uibase/wrtsh/wrtsh2.cxx @@ -72,10 +72,10 @@ void SwWrtShell::Insert(SwField const& rField, SwPaM* pAnnotationRange) StartUndo(SwUndoId::INSERT, &aRewriter); bool bDeleted = false; - std::unique_ptr<SwPaM> pAnnotationTextRange; + std::optional<SwPaM> pAnnotationTextRange; if (pAnnotationRange) { - pAnnotationTextRange.reset(new SwPaM(*pAnnotationRange->Start(), *pAnnotationRange->End())); + pAnnotationTextRange.emplace(*pAnnotationRange->Start(), *pAnnotationRange->End()); } if ( HasSelection() ) @@ -95,13 +95,13 @@ void SwWrtShell::Insert(SwField const& rField, SwPaM* pAnnotationRange) EndPara(); } const SwPosition rEndPos( *GetCurrentShellCursor().GetPoint() ); - pAnnotationTextRange.reset(new SwPaM( rStartPos, rEndPos )); + pAnnotationTextRange.emplace( rStartPos, rEndPos ); } else { NormalizePam( false ); const SwPaM& rCurrPaM = GetCurrentShellCursor(); - pAnnotationTextRange.reset(new SwPaM( *rCurrPaM.GetPoint(), *rCurrPaM.GetMark() )); + pAnnotationTextRange.emplace( *rCurrPaM.GetPoint(), *rCurrPaM.GetMark() ); ClearMark(); } }
