sw/inc/node.hxx | 6 +++--- sw/source/core/crsr/pam.cxx | 28 ++++++++++++++-------------- sw/source/core/doc/docruby.cxx | 2 +- sw/source/core/docnode/node.cxx | 29 ++++++++++++++--------------- sw/source/core/edit/edattr.cxx | 2 +- sw/source/core/inc/pamtyp.hxx | 6 +++--- 6 files changed, 36 insertions(+), 37 deletions(-)
New commits: commit ba928d7589ab78f81aea20e7ce9a1e6fa928def5 Author: Noel Grandin <noelgran...@gmail.com> AuthorDate: Sat Jan 18 19:19:14 2025 +0200 Commit: Miklos Vajna <vmik...@collabora.com> CommitDate: Tue Jan 28 12:27:26 2025 +0100 pass param by reference in GoNext/GoPrevious to enforce that they are never nullptr Change-Id: I973dcc143b5334c3060a0f815474e569deae4c27 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180459 Tested-by: Jenkins Reviewed-by: Ashod Nakashian <a...@collabora.com> (cherry picked from commit f60995e97f50152aca57305a0f13e708265186a6) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180766 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com> Reviewed-by: Miklos Vajna <vmik...@collabora.com> diff --git a/sw/inc/node.hxx b/sw/inc/node.hxx index b1e3309d596f..e42b6e80e53c 100644 --- a/sw/inc/node.hxx +++ b/sw/inc/node.hxx @@ -434,9 +434,9 @@ public: bool CanJoinNext( SwPosition* pIdx ) const; bool CanJoinPrev( SwNodeIndex* pIdx =nullptr ) const; - bool GoNext(SwContentIndex *, SwCursorSkipMode nMode ) const; - bool GoNext(SwPosition*, SwCursorSkipMode nMode ) const; - bool GoPrevious(SwContentIndex *, SwCursorSkipMode nMode ) const; + bool GoNext(SwContentIndex&, SwCursorSkipMode nMode ) const; + bool GoNext(SwPosition&, SwCursorSkipMode nMode ) const; + bool GoPrevious(SwContentIndex&, SwCursorSkipMode nMode ) const; /// @see GetFrameOfModify SwContentFrame *getLayoutFrame( const SwRootFrame*, diff --git a/sw/source/core/crsr/pam.cxx b/sw/source/core/crsr/pam.cxx index c5e2a1cc3557..f4dffd98418f 100644 --- a/sw/source/core/crsr/pam.cxx +++ b/sw/source/core/crsr/pam.cxx @@ -378,17 +378,17 @@ bool CheckNodesRange( const SwNode& rStt, return false; // somewhere in between => error } -bool GoNext(SwNode* pNd, SwContentIndex * pIdx, SwCursorSkipMode nMode ) +bool GoNext(SwNode& rNd, SwContentIndex& rIdx, SwCursorSkipMode nMode ) { - if( pNd->IsContentNode() ) - return static_cast<SwContentNode*>(pNd)->GoNext( pIdx, nMode ); + if( rNd.IsContentNode() ) + return static_cast<SwContentNode&>(rNd).GoNext( rIdx, nMode ); return false; } -bool GoPrevious( SwNode* pNd, SwContentIndex * pIdx, SwCursorSkipMode nMode ) +bool GoPrevious( SwNode& rNd, SwContentIndex& rIdx, SwCursorSkipMode nMode ) { - if( pNd->IsContentNode() ) - return static_cast<SwContentNode*>(pNd)->GoPrevious( pIdx, nMode ); + if( rNd.IsContentNode() ) + return static_cast<SwContentNode&>(rNd).GoPrevious( rIdx, nMode ); return false; } @@ -1201,32 +1201,32 @@ bool GoInNode( SwPaM & rPam, SwMoveFnCollection const & fnMove ) bool GoInContent( SwPaM & rPam, SwMoveFnCollection const & fnMove ) { - if( (*fnMove.fnNd)( &rPam.GetPoint()->GetNode(), - &rPam.GetPoint()->nContent, SwCursorSkipMode::Chars )) + if( (*fnMove.fnNd)( rPam.GetPoint()->GetNode(), + rPam.GetPoint()->nContent, SwCursorSkipMode::Chars )) return true; return GoInNode( rPam, fnMove ); } bool GoInContentCells( SwPaM & rPam, SwMoveFnCollection const & fnMove ) { - if( (*fnMove.fnNd)( &rPam.GetPoint()->GetNode(), - &rPam.GetPoint()->nContent, SwCursorSkipMode::Cells )) + if( (*fnMove.fnNd)( rPam.GetPoint()->GetNode(), + rPam.GetPoint()->nContent, SwCursorSkipMode::Cells )) return true; return GoInNode( rPam, fnMove ); } bool GoInContentSkipHidden( SwPaM & rPam, SwMoveFnCollection const & fnMove ) { - if( (*fnMove.fnNd)( &rPam.GetPoint()->GetNode(), - &rPam.GetPoint()->nContent, SwCursorSkipMode::Chars | SwCursorSkipMode::Hidden ) ) + if( (*fnMove.fnNd)( rPam.GetPoint()->GetNode(), + rPam.GetPoint()->nContent, SwCursorSkipMode::Chars | SwCursorSkipMode::Hidden ) ) return true; return GoInNode( rPam, fnMove ); } bool GoInContentCellsSkipHidden( SwPaM & rPam, SwMoveFnCollection const & fnMove ) { - if( (*fnMove.fnNd)( &rPam.GetPoint()->GetNode(), - &rPam.GetPoint()->nContent, SwCursorSkipMode::Cells | SwCursorSkipMode::Hidden ) ) + if( (*fnMove.fnNd)( rPam.GetPoint()->GetNode(), + rPam.GetPoint()->nContent, SwCursorSkipMode::Cells | SwCursorSkipMode::Hidden ) ) return true; return GoInNode( rPam, fnMove ); } diff --git a/sw/source/core/doc/docruby.cxx b/sw/source/core/doc/docruby.cxx index 1a1b84ffd7f4..f51a49a224fe 100644 --- a/sw/source/core/doc/docruby.cxx +++ b/sw/source/core/doc/docruby.cxx @@ -303,7 +303,7 @@ bool SwDoc::SelectNextRubyChars( SwPaM& rPam, SwRubyListEntry& rEntry ) nWordEnd = nEnd; } } - pTNd->GoNext( pPos, SwCursorSkipMode::Chars ); + pTNd->GoNext( *pPos, SwCursorSkipMode::Chars ); nStart = pPos->GetContentIndex(); } diff --git a/sw/source/core/docnode/node.cxx b/sw/source/core/docnode/node.cxx index 4560ce9346f0..ca38e625a0e4 100644 --- a/sw/source/core/docnode/node.cxx +++ b/sw/source/core/docnode/node.cxx @@ -1286,26 +1286,26 @@ SwFormatColl *SwContentNode::ChgFormatColl( SwFormatColl *pNewColl ) return pOldColl; } -bool SwContentNode::GoNext(SwPosition* pPos, SwCursorSkipMode nMode ) const +bool SwContentNode::GoNext(SwPosition& rPos, SwCursorSkipMode nMode ) const { - if (!GoNext(&pPos->nContent, nMode)) + if (!GoNext(rPos.nContent, nMode)) return false; - if (pPos->nContent.GetContentNode() != &pPos->GetNode()) - pPos->nNode.Assign(*pPos->nContent.GetContentNode()); + if (rPos.nContent.GetContentNode() != &rPos.GetNode()) + rPos.nNode.Assign(*rPos.nContent.GetContentNode()); return true; } -bool SwContentNode::GoNext(SwContentIndex * pIdx, SwCursorSkipMode nMode ) const +bool SwContentNode::GoNext(SwContentIndex& rIdx, SwCursorSkipMode nMode ) const { bool bRet = true; - if( pIdx->GetIndex() < Len() ) + if( rIdx.GetIndex() < Len() ) { if( !IsTextNode() ) - ++(*pIdx); + ++rIdx; else { const SwTextNode& rTNd = *GetTextNode(); - sal_Int32 nPos = pIdx->GetIndex(); + sal_Int32 nPos = rIdx.GetIndex(); assert(g_pBreakIt && g_pBreakIt->GetBreakIter().is()); sal_Int32 nDone = 0; sal_uInt16 nItrMode = ( SwCursorSkipMode::Cells & nMode ) ? @@ -1326,7 +1326,7 @@ bool SwContentNode::GoNext(SwContentIndex * pIdx, SwCursorSkipMode nMode ) const } if( 1 == nDone ) - *pIdx = nPos; + rIdx = nPos; else bRet = false; } @@ -1336,19 +1336,18 @@ bool SwContentNode::GoNext(SwContentIndex * pIdx, SwCursorSkipMode nMode ) const return bRet; } -bool SwContentNode::GoPrevious(SwContentIndex * pIdx, SwCursorSkipMode nMode ) const +bool SwContentNode::GoPrevious(SwContentIndex& rIdx, SwCursorSkipMode nMode ) const { bool bRet = true; - assert(pIdx != nullptr && "Invalid SwContentIndex* argument to SwContentNode::GoPrevious()"); - if (pIdx && pIdx->GetIndex() > 0) + if( rIdx.GetIndex() > 0 ) { if( !IsTextNode() ) - --(*pIdx); + --rIdx; else { assert(GetTextNode() != nullptr && "Expected valid GetTextNode() with IsTextNode()"); const SwTextNode& rTNd = *GetTextNode(); - sal_Int32 nPos = pIdx->GetIndex(); + sal_Int32 nPos = rIdx.GetIndex(); assert(g_pBreakIt && g_pBreakIt->GetBreakIter().is()); sal_Int32 nDone = 0; sal_uInt16 nItrMode = ( SwCursorSkipMode::Cells & nMode ) ? @@ -1369,7 +1368,7 @@ bool SwContentNode::GoPrevious(SwContentIndex * pIdx, SwCursorSkipMode nMode ) c } if( 1 == nDone ) - *pIdx = nPos; + rIdx = nPos; else bRet = false; } diff --git a/sw/source/core/edit/edattr.cxx b/sw/source/core/edit/edattr.cxx index 8ff0026d03c3..919346a12d9f 100644 --- a/sw/source/core/edit/edattr.cxx +++ b/sw/source/core/edit/edattr.cxx @@ -683,7 +683,7 @@ SvtScriptType SwEditShell::GetScriptType() const if( nPos ) { SwContentIndex aIdx( pStt->GetContentNode(), pStt->GetContentIndex() ); - if( pTNd->GoPrevious( &aIdx, SwCursorSkipMode::Chars ) ) + if( pTNd->GoPrevious( aIdx, SwCursorSkipMode::Chars ) ) nPos = aIdx.GetIndex(); } diff --git a/sw/source/core/inc/pamtyp.hxx b/sw/source/core/inc/pamtyp.hxx index d8c1110dea8c..30e53f1d2848 100644 --- a/sw/source/core/inc/pamtyp.hxx +++ b/sw/source/core/inc/pamtyp.hxx @@ -54,15 +54,15 @@ void GoEndOfSection( SwPosition*); const SwTextAttr* GetFrwrdTextHint( const SwpHints&, size_t&, sal_Int32 ); const SwTextAttr* GetBkwrdTextHint( const SwpHints&, size_t&, sal_Int32 ); -bool GoNext(SwNode* pNd, SwContentIndex * pIdx, SwCursorSkipMode nMode ); -bool GoPrevious(SwNode* pNd, SwContentIndex * pIdx, SwCursorSkipMode nMode ); +bool GoNext(SwNode& rNd, SwContentIndex& rIdx, SwCursorSkipMode nMode ); +bool GoPrevious(SwNode& rNd, SwContentIndex& rIdx, SwCursorSkipMode nMode ); SwContentNode* GoNextNds( SwNodeIndex * pIdx, bool ); SwContentNode* GoPreviousNds( SwNodeIndex * pIdx, bool ); SwContentNode* GoNextPos( SwPosition * pIdx, bool ); SwContentNode* GoPreviousPos( SwPosition * pIdx, bool ); // type definitions of functions -typedef bool (*GoNd)( SwNode*, SwContentIndex*, SwCursorSkipMode ); +typedef bool (*GoNd)( SwNode&, SwContentIndex&, SwCursorSkipMode ); typedef SwContentNode* (*GoNds)( SwNodeIndex*, bool ); typedef SwContentNode* (*GoPos)( SwPosition*, bool ); typedef void (*GoDoc)( SwPosition* );