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* );

Reply via email to