sw/inc/pam.hxx                                          |    2 -
 sw/source/core/access/accpara.cxx                       |    2 -
 sw/source/core/crsr/annotationmark.cxx                  |    5 +--
 sw/source/core/crsr/bookmrk.cxx                         |   25 ++++++----------
 sw/source/core/crsr/pam.cxx                             |    4 +-
 sw/source/core/doc/DocumentContentOperationsManager.cxx |    8 ++---
 sw/source/core/doc/docbm.cxx                            |    6 +--
 sw/source/core/undo/SwUndoField.cxx                     |    4 +-
 sw/source/core/undo/unattr.cxx                          |    4 +-
 sw/source/core/undo/unbkmk.cxx                          |   10 +++---
 sw/source/core/undo/undobj.cxx                          |    4 +-
 sw/source/core/undo/unnum.cxx                           |    4 +-
 sw/source/core/undo/untbl.cxx                           |    2 -
 sw/source/core/unocore/unobkm.cxx                       |    4 +-
 sw/source/core/unocore/unotbl.cxx                       |    7 +---
 sw/source/filter/ww8/writerhelper.cxx                   |    2 -
 16 files changed, 42 insertions(+), 51 deletions(-)

New commits:
commit 947e89cf6755d15b57ee3c5fa2661e7a1c09402b
Author:     Caolán McNamara <caol...@redhat.com>
AuthorDate: Wed Sep 30 10:20:07 2020 +0100
Commit:     Caolán McNamara <caol...@redhat.com>
CommitDate: Wed Sep 30 14:28:20 2020 +0200

    SwPosition::GetDoc can return a reference
    
    and remove discovered redundant null checks
    
    Change-Id: I90e2a84b260bfaf283b787db055cd1ed54dab4ee
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103676
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caol...@redhat.com>

diff --git a/sw/inc/pam.hxx b/sw/inc/pam.hxx
index 0f80752a276a..8c0a8abe6de9 100644
--- a/sw/inc/pam.hxx
+++ b/sw/inc/pam.hxx
@@ -47,7 +47,7 @@ struct SAL_WARN_UNUSED SW_DLLPUBLIC SwPosition
 
        @return the document this position is in.
     */
-    SwDoc * GetDoc() const;
+    SwDoc& GetDoc() const;
 
     bool operator < (const SwPosition &) const;
     bool operator > (const SwPosition &) const;
diff --git a/sw/source/core/access/accpara.cxx 
b/sw/source/core/access/accpara.cxx
index 001c32ade91b..4f60b2b9dff0 100644
--- a/sw/source/core/access/accpara.cxx
+++ b/sw/source/core/access/accpara.cxx
@@ -536,7 +536,7 @@ const SwRangeRedline* 
SwAccessibleParagraph::GetRedlineAtIndex()
     if ( pCrSr )
     {
         SwPosition* pStart = pCrSr->Start();
-        pRedline = 
pStart->GetDoc()->getIDocumentRedlineAccess().GetRedline(*pStart, nullptr);
+        pRedline = 
pStart->GetDoc().getIDocumentRedlineAccess().GetRedline(*pStart, nullptr);
     }
 
     return pRedline;
diff --git a/sw/source/core/crsr/annotationmark.cxx 
b/sw/source/core/crsr/annotationmark.cxx
index 887333525390..061d88a08323 100644
--- a/sw/source/core/crsr/annotationmark.cxx
+++ b/sw/source/core/crsr/annotationmark.cxx
@@ -78,11 +78,10 @@ namespace sw::mark
 
     const SwFormatField* AnnotationMark::GetAnnotationFormatField() const
     {
-        SwDoc* pDoc = GetMarkPos().GetDoc();
-        assert(pDoc != nullptr);
+        SwDoc& rDoc = GetMarkPos().GetDoc();
 
         const auto sName = GetName();
-        SwFieldType* pType = pDoc->getIDocumentFieldsAccess().GetFieldType( 
SwFieldIds::Postit, OUString(), false );
+        SwFieldType* pType = rDoc.getIDocumentFieldsAccess().GetFieldType( 
SwFieldIds::Postit, OUString(), false );
         std::vector<SwFormatField*> vFields;
         pType->GatherFields(vFields);
         auto ppFound = std::find_if(vFields.begin(), vFields.end(), 
[&sName](SwFormatField* pF)
diff --git a/sw/source/core/crsr/bookmrk.cxx b/sw/source/core/crsr/bookmrk.cxx
index 4e43a49bf007..c918ec28917e 100644
--- a/sw/source/core/crsr/bookmrk.cxx
+++ b/sw/source/core/crsr/bookmrk.cxx
@@ -455,16 +455,14 @@ namespace sw::mark
 
     ::sfx2::IXmlIdRegistry& Bookmark::GetRegistry()
     {
-        SwDoc *const pDoc( GetMarkPos().GetDoc() );
-        assert(pDoc);
-        return pDoc->GetXmlIdRegistry();
+        SwDoc& rDoc( GetMarkPos().GetDoc() );
+        return rDoc.GetXmlIdRegistry();
     }
 
     bool Bookmark::IsInClipboard() const
     {
-        SwDoc *const pDoc( GetMarkPos().GetDoc() );
-        assert(pDoc);
-        return pDoc->IsClipBoard();
+        SwDoc& rDoc( GetMarkPos().GetDoc() );
+        return rDoc.IsClipBoard();
     }
 
     bool Bookmark::IsInUndo() const
@@ -474,17 +472,15 @@ namespace sw::mark
 
     bool Bookmark::IsInContent() const
     {
-        SwDoc *const pDoc( GetMarkPos().GetDoc() );
-        assert(pDoc);
-        return !pDoc->IsInHeaderFooter( GetMarkPos().nNode );
+        SwDoc& rDoc( GetMarkPos().GetDoc() );
+        return !rDoc.IsInHeaderFooter( GetMarkPos().nNode );
     }
 
     uno::Reference< rdf::XMetadatable > Bookmark::MakeUnoObject()
     {
-        SwDoc *const pDoc( GetMarkPos().GetDoc() );
-        assert(pDoc);
+        SwDoc& rDoc( GetMarkPos().GetDoc() );
         const uno::Reference< rdf::XMetadatable> xMeta(
-                SwXBookmark::CreateXBookmark(*pDoc, this), uno::UNO_QUERY);
+                SwXBookmark::CreateXBookmark(rDoc, this), uno::UNO_QUERY);
         return xMeta;
     }
 
@@ -626,9 +622,8 @@ namespace sw::mark
         {
             (*GetParameters())[OUString(ODF_FORMCHECKBOX_RESULT)] <<= checked;
             // mark document as modified
-            SwDoc *const pDoc( GetMarkPos().GetDoc() );
-            if ( pDoc )
-                pDoc->getIDocumentState().SetModified();
+            SwDoc& rDoc( GetMarkPos().GetDoc() );
+            rDoc.getIDocumentState().SetModified();
         }
     }
 
diff --git a/sw/source/core/crsr/pam.cxx b/sw/source/core/crsr/pam.cxx
index e73885ff6008..aae189370d0a 100644
--- a/sw/source/core/crsr/pam.cxx
+++ b/sw/source/core/crsr/pam.cxx
@@ -175,9 +175,9 @@ bool SwPosition::operator!=(const SwPosition &rPos) const
         || (nContent != rPos.nContent);
 }
 
-SwDoc * SwPosition::GetDoc() const
+SwDoc& SwPosition::GetDoc() const
 {
-    return &nNode.GetNode().GetDoc();
+    return nNode.GetNode().GetDoc();
 }
 
 void SwPosition::dumpAsXml(xmlTextWriterPtr pWriter) const
diff --git a/sw/source/core/doc/DocumentContentOperationsManager.cxx 
b/sw/source/core/doc/DocumentContentOperationsManager.cxx
index fd7dd06a6cfa..4ca1c1cb894d 100644
--- a/sw/source/core/doc/DocumentContentOperationsManager.cxx
+++ b/sw/source/core/doc/DocumentContentOperationsManager.cxx
@@ -234,9 +234,9 @@ namespace sw
     void CopyBookmarks(const SwPaM& rPam, SwPosition& rCpyPam)
     {
         const SwDoc& rSrcDoc = rPam.GetDoc();
-        SwDoc* pDestDoc =  rCpyPam.GetDoc();
+        SwDoc& rDestDoc =  rCpyPam.GetDoc();
         const IDocumentMarkAccess* const pSrcMarkAccess = 
rSrcDoc.getIDocumentMarkAccess();
-        ::sw::UndoGuard const undoGuard(pDestDoc->GetIDocumentUndoRedo());
+        ::sw::UndoGuard const undoGuard(rDestDoc.GetIDocumentUndoRedo());
 
         const SwPosition &rStt = *rPam.Start(), &rEnd = *rPam.End();
         SwPosition const*const pCpyStt = &rCpyPam;
@@ -283,14 +283,14 @@ namespace sw
                 lcl_SetCpyPos(pMark->GetOtherMarkPos(), rStt, *pCpyStt, 
*aTmpPam.GetMark(), nDelCount);
             }
 
-            ::sw::mark::IMark* const pNewMark = 
pDestDoc->getIDocumentMarkAccess()->makeMark(
+            ::sw::mark::IMark* const pNewMark = 
rDestDoc.getIDocumentMarkAccess()->makeMark(
                 aTmpPam,
                 pMark->GetName(),
                 IDocumentMarkAccess::GetType(*pMark),
                 ::sw::mark::InsertMode::CopyText);
             // Explicitly try to get exactly the same name as in the source
             // because NavigatorReminders, DdeBookmarks etc. ignore the 
proposed name
-            pDestDoc->getIDocumentMarkAccess()->renameMark(pNewMark, 
pMark->GetName());
+            rDestDoc.getIDocumentMarkAccess()->renameMark(pNewMark, 
pMark->GetName());
 
             // copying additional attributes for bookmarks or fieldmarks
             ::sw::mark::IBookmark* const pNewBookmark =
diff --git a/sw/source/core/doc/docbm.cxx b/sw/source/core/doc/docbm.cxx
index 749c473d8c56..271ad9bcc0fc 100644
--- a/sw/source/core/doc/docbm.cxx
+++ b/sw/source/core/doc/docbm.cxx
@@ -812,7 +812,7 @@ namespace sw::mark
         ::sw::mark::IMark* const io_pMark,
         const SwPaM& rPaM)
     {
-        assert(io_pMark->GetMarkPos().GetDoc() == &m_rDoc &&
+        assert(&io_pMark->GetMarkPos().GetDoc() == &m_rDoc &&
             "<MarkManager::repositionMark(..)>"
             " - Mark is not in my doc.");
         MarkBase* const pMarkBase = dynamic_cast< MarkBase* >(io_pMark);
@@ -839,7 +839,7 @@ namespace sw::mark
         ::sw::mark::IMark* io_pMark,
         const OUString& rNewName )
     {
-        assert(io_pMark->GetMarkPos().GetDoc() == &m_rDoc &&
+        assert(&io_pMark->GetMarkPos().GetDoc() == &m_rDoc &&
             "<MarkManager::renameMark(..)>"
             " - Mark is not in my doc.");
         if ( io_pMark->GetName() == rNewName )
@@ -1288,7 +1288,7 @@ namespace sw::mark
 
     void MarkManager::deleteMark(const IMark* const pMark)
     {
-        assert(pMark->GetMarkPos().GetDoc() == &m_rDoc &&
+        assert(&pMark->GetMarkPos().GetDoc() == &m_rDoc &&
             "<MarkManager::deleteMark(..)>"
             " - Mark is not in my doc.");
         // finds the last Mark that is starting before pMark
diff --git a/sw/source/core/undo/SwUndoField.cxx 
b/sw/source/core/undo/SwUndoField.cxx
index 3ab16ebe4ff3..353070852588 100644
--- a/sw/source/core/undo/SwUndoField.cxx
+++ b/sw/source/core/undo/SwUndoField.cxx
@@ -33,11 +33,11 @@
 using namespace ::com::sun::star::uno;
 
 SwUndoField::SwUndoField(const SwPosition & rPos )
-    : SwUndo(SwUndoId::FIELD, rPos.GetDoc())
+    : SwUndo(SwUndoId::FIELD, &rPos.GetDoc())
 {
     m_nNodeIndex = rPos.nNode.GetIndex();
     m_nOffset = rPos.nContent.GetIndex();
-    m_pDoc = rPos.GetDoc();
+    m_pDoc = &rPos.GetDoc();
 }
 
 SwUndoField::~SwUndoField()
diff --git a/sw/source/core/undo/unattr.cxx b/sw/source/core/undo/unattr.cxx
index 68fb64f903bd..3cbdebd6a989 100644
--- a/sw/source/core/undo/unattr.cxx
+++ b/sw/source/core/undo/unattr.cxx
@@ -538,7 +538,7 @@ SwUndoResetAttr::SwUndoResetAttr( const SwPaM& rRange, 
sal_uInt16 nFormatId )
 }
 
 SwUndoResetAttr::SwUndoResetAttr( const SwPosition& rPos, sal_uInt16 nFormatId 
)
-    : SwUndo( SwUndoId::RESETATTR, rPos.GetDoc() )
+    : SwUndo( SwUndoId::RESETATTR, &rPos.GetDoc() )
     , m_pHistory( new SwHistory )
     , m_nFormatId( nFormatId )
 {
@@ -1017,7 +1017,7 @@ void SwUndoEndNoteInfo::RedoImpl(::sw::UndoRedoContext & 
rContext)
 }
 
 SwUndoDontExpandFormat::SwUndoDontExpandFormat( const SwPosition& rPos )
-    : SwUndo( SwUndoId::DONTEXPAND, rPos.GetDoc() )
+    : SwUndo( SwUndoId::DONTEXPAND, &rPos.GetDoc() )
     , m_nNodeIndex( rPos.nNode.GetIndex() )
     , m_nContentIndex( rPos.nContent.GetIndex() )
 {
diff --git a/sw/source/core/undo/unbkmk.cxx b/sw/source/core/undo/unbkmk.cxx
index 16d45a7b705c..cabcd02a5170 100644
--- a/sw/source/core/undo/unbkmk.cxx
+++ b/sw/source/core/undo/unbkmk.cxx
@@ -32,7 +32,7 @@
 
 SwUndoBookmark::SwUndoBookmark( SwUndoId nUndoId,
             const ::sw::mark::IMark& rBkmk )
-    : SwUndo( nUndoId, rBkmk.GetMarkPos().GetDoc() )
+    : SwUndo( nUndoId, &rBkmk.GetMarkPos().GetDoc() )
     , m_pHistoryBookmark(new SwHistoryBookmark(rBkmk, true, 
rBkmk.IsExpanded()))
 {
 }
@@ -148,7 +148,7 @@ void SwUndoRenameBookmark::RedoImpl(::sw::UndoRedoContext & 
rContext)
 }
 
 SwUndoInsNoTextFieldmark::SwUndoInsNoTextFieldmark(const 
::sw::mark::IFieldmark& rFieldmark)
-    : SwUndo(SwUndoId::INSERT, rFieldmark.GetMarkPos().GetDoc())
+    : SwUndo(SwUndoId::INSERT, &rFieldmark.GetMarkPos().GetDoc())
     , m_pHistoryNoTextFieldmark(new SwHistoryNoTextFieldmark(rFieldmark))
 {
 }
@@ -164,7 +164,7 @@ void 
SwUndoInsNoTextFieldmark::RedoImpl(::sw::UndoRedoContext & rContext)
 }
 
 SwUndoDelNoTextFieldmark::SwUndoDelNoTextFieldmark(const 
::sw::mark::IFieldmark& rFieldmark)
-    : SwUndo(SwUndoId::DELETE, rFieldmark.GetMarkPos().GetDoc())
+    : SwUndo(SwUndoId::DELETE, &rFieldmark.GetMarkPos().GetDoc())
     , m_pHistoryNoTextFieldmark(new SwHistoryNoTextFieldmark(rFieldmark))
 {
 }
@@ -182,7 +182,7 @@ void 
SwUndoDelNoTextFieldmark::RedoImpl(::sw::UndoRedoContext & rContext)
 }
 
 SwUndoInsTextFieldmark::SwUndoInsTextFieldmark(const ::sw::mark::IFieldmark& 
rFieldmark)
-    : SwUndo(SwUndoId::INSERT, rFieldmark.GetMarkPos().GetDoc())
+    : SwUndo(SwUndoId::INSERT, &rFieldmark.GetMarkPos().GetDoc())
     , m_pHistoryTextFieldmark(new SwHistoryTextFieldmark(rFieldmark))
 {
 }
@@ -198,7 +198,7 @@ void SwUndoInsTextFieldmark::RedoImpl(::sw::UndoRedoContext 
& rContext)
 }
 
 SwUndoDelTextFieldmark::SwUndoDelTextFieldmark(const ::sw::mark::IFieldmark& 
rFieldmark)
-    : SwUndo(SwUndoId::DELETE, rFieldmark.GetMarkPos().GetDoc())
+    : SwUndo(SwUndoId::DELETE, &rFieldmark.GetMarkPos().GetDoc())
     , m_pHistoryTextFieldmark(new SwHistoryTextFieldmark(rFieldmark))
 {
 }
diff --git a/sw/source/core/undo/undobj.cxx b/sw/source/core/undo/undobj.cxx
index 323de872c3cf..0ef36bd5f6e7 100644
--- a/sw/source/core/undo/undobj.cxx
+++ b/sw/source/core/undo/undobj.cxx
@@ -1597,7 +1597,7 @@ bool IsDestroyFrameAnchoredAtChar(SwPosition const & 
rAnchorPos,
     }
 
     if ((nDelContentType & DelContentType::WriterfilterHack)
-        && rAnchorPos.GetDoc()->IsInWriterfilterImport())
+        && rAnchorPos.GetDoc().IsInWriterfilterImport())
     {   // FIXME hack for writerfilter RemoveLastParagraph() and 
MakeFlyAndMove(); can't test file format more specific?
         return (rStart < rAnchorPos) && (rAnchorPos < rEnd);
     }
@@ -1638,7 +1638,7 @@ bool IsSelectFrameAnchoredAtPara(SwPosition const & 
rAnchorPos,
     }
 
     if ((nDelContentType & DelContentType::WriterfilterHack)
-        && rAnchorPos.GetDoc()->IsInWriterfilterImport())
+        && rAnchorPos.GetDoc().IsInWriterfilterImport())
     {   // FIXME hack for writerfilter RemoveLastParagraph() and 
MakeFlyAndMove(); can't test file format more specific?
         // but it MUST NOT be done during the SetRedlineFlags at the end of ODF
         // import, where the IsInXMLImport() cannot be checked because the
diff --git a/sw/source/core/undo/unnum.cxx b/sw/source/core/undo/unnum.cxx
index 603567544bff..d7d517a5f37f 100644
--- a/sw/source/core/undo/unnum.cxx
+++ b/sw/source/core/undo/unnum.cxx
@@ -323,14 +323,14 @@ void SwUndoNumOrNoNum::RepeatImpl(::sw::RepeatContext & 
rContext)
 }
 
 SwUndoNumRuleStart::SwUndoNumRuleStart( const SwPosition& rPos, bool bFlg )
-    : SwUndo( SwUndoId::SETNUMRULESTART, rPos.GetDoc() ),
+    : SwUndo( SwUndoId::SETNUMRULESTART, &rPos.GetDoc() ),
     m_nIndex( rPos.nNode.GetIndex() ), m_nOldStart( USHRT_MAX ),
     m_nNewStart( USHRT_MAX ), m_bSetStartValue( false ), m_bFlag( bFlg )
 {
 }
 
 SwUndoNumRuleStart::SwUndoNumRuleStart( const SwPosition& rPos, sal_uInt16 
nStt )
-    : SwUndo(SwUndoId::SETNUMRULESTART, rPos.GetDoc())
+    : SwUndo(SwUndoId::SETNUMRULESTART, &rPos.GetDoc())
     , m_nIndex(rPos.nNode.GetIndex())
     , m_nOldStart(USHRT_MAX)
     , m_nNewStart(nStt)
diff --git a/sw/source/core/undo/untbl.cxx b/sw/source/core/undo/untbl.cxx
index f5f853503174..0df50f847820 100644
--- a/sw/source/core/undo/untbl.cxx
+++ b/sw/source/core/undo/untbl.cxx
@@ -223,7 +223,7 @@ SwUndoInsTable::SwUndoInsTable( const SwPosition& rPos, 
sal_uInt16 nCl, sal_uInt
                             const SwTableAutoFormat* pTAFormat,
                             const std::vector<sal_uInt16> *pColArr,
                             const OUString & rName)
-    : SwUndo( SwUndoId::INSTABLE, rPos.GetDoc() ),
+    : SwUndo( SwUndoId::INSTABLE, &rPos.GetDoc() ),
     m_aInsTableOptions( rInsTableOpts ),
     m_nStartNode( rPos.nNode.GetIndex() ), m_nRows( nRw ), m_nColumns( nCl ), 
m_nAdjust( nAdj )
 {
diff --git a/sw/source/core/unocore/unobkm.cxx 
b/sw/source/core/unocore/unobkm.cxx
index 97550fec41da..233d14b23421 100644
--- a/sw/source/core/unocore/unobkm.cxx
+++ b/sw/source/core/unocore/unobkm.cxx
@@ -101,8 +101,8 @@ void SwXBookmark::Impl::registerInMark(SwXBookmark& rThis,
         {
             pMarkBase->SetXBookmark(xBookmark);
         }
-        assert(m_pDoc == nullptr || m_pDoc == pBkmk->GetMarkPos().GetDoc());
-        m_pDoc = pBkmk->GetMarkPos().GetDoc();
+        assert(m_pDoc == nullptr || m_pDoc == &pBkmk->GetMarkPos().GetDoc());
+        m_pDoc = &pBkmk->GetMarkPos().GetDoc();
     }
     else if (m_pRegisteredBookmark)
     {
diff --git a/sw/source/core/unocore/unotbl.cxx 
b/sw/source/core/unocore/unotbl.cxx
index 86b0b7ca5446..f58ee3dad7e0 100644
--- a/sw/source/core/unocore/unotbl.cxx
+++ b/sw/source/core/unocore/unotbl.cxx
@@ -1074,11 +1074,8 @@ uno::Any SwXCell::getPropertyValue(const OUString& 
rPropertyName)
                     return uno::Any();
 
                 SwPosition aPos(*pTableNode);
-                SwDoc* pDoc = aPos.GetDoc();
-                if (!pDoc)
-                    return uno::Any();
-
-                m_xParentText = sw::CreateParentXText(*pDoc, aPos);
+                SwDoc& rDoc = aPos.GetDoc();
+                m_xParentText = sw::CreateParentXText(rDoc, aPos);
             }
 
             return uno::makeAny(m_xParentText);
diff --git a/sw/source/filter/ww8/writerhelper.cxx 
b/sw/source/filter/ww8/writerhelper.cxx
index af79be052618..bed5a4eeb23d 100644
--- a/sw/source/filter/ww8/writerhelper.cxx
+++ b/sw/source/filter/ww8/writerhelper.cxx
@@ -736,7 +736,7 @@ namespace sw
                     SwPosition const end(*rPos.nNode.GetNode().GetTextNode(),
                                          nIndex - 1);
                     sw::mark::IFieldmark *const pFieldMark(
-                        
rPos.GetDoc()->getIDocumentMarkAccess()->getFieldmarkAt(end));
+                        
rPos.GetDoc().getIDocumentMarkAccess()->getFieldmarkAt(end));
                     SAL_WARN_IF(!pFieldMark, "sw.ww8", "expected a field 
mark");
                     if (pFieldMark && 
pFieldMark->GetMarkPos().nNode.GetIndex() == 
(*aResult)->m_aMkPos.m_nNode.GetIndex()+1
                         && pFieldMark->GetMarkPos().nContent.GetIndex() < 
(*aResult)->m_aMkPos.m_nContent)
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to