sw/source/uibase/utlui/content.cxx |   22 +++++++++++++++++-----
 1 file changed, 17 insertions(+), 5 deletions(-)

New commits:
commit fe8ec10eeee51f806392e14440655c8d664bc234
Author:     Caolán McNamara <caol...@redhat.com>
AuthorDate: Thu Feb 17 15:32:32 2022 +0000
Commit:     Caolán McNamara <caol...@redhat.com>
CommitDate: Thu Feb 17 18:00:50 2022 +0100

    cid#1498146 silence Dereference after null check
    
    Change-Id: I55da3d7a2f1ccfa0c7120b6cff9ae95936f10e92
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130078
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caol...@redhat.com>

diff --git a/sw/source/uibase/utlui/content.cxx 
b/sw/source/uibase/utlui/content.cxx
index 0f2e290fa510..cea8e84444ea 100644
--- a/sw/source/uibase/utlui/content.cxx
+++ b/sw/source/uibase/utlui/content.cxx
@@ -444,6 +444,7 @@ void SwContentType::FillMemberList(bool* pbContentChanged)
             // nodes in frames, headers, footers
             if (pOldMember)
             {
+                assert(pbContentChanged && "pbContentChanged is always set if 
pOldMember is");
                 if (pOldMember->size() != m_pMember->size())
                 {
                     *pbContentChanged = true;
@@ -543,6 +544,7 @@ void SwContentType::FillMemberList(bool* pbContentChanged)
                 // creation due to a sorted list being used here (before,
                 // entries with same index were compared already at creation
                 // time what worked before a sorted list was used)
+                assert(pbContentChanged && "pbContentChanged is always set if 
pOldMember is");
                 *pbContentChanged = checkVisibilityChanged(
                     *pOldMember,
                     *m_pMember);
@@ -722,6 +724,7 @@ void SwContentType::FillMemberList(bool* pbContentChanged)
                     // creation due to a sorted list being used here (before,
                     // entries with same index were compared already at 
creation
                     // time what worked before a sorted list was used)
+                    assert(pbContentChanged && "pbContentChanged is always set 
if pOldMember is");
                     *pbContentChanged = checkVisibilityChanged(
                         *pOldMember,
                         *m_pMember);
@@ -786,9 +789,13 @@ void SwContentType::FillMemberList(bool* pbContentChanged)
 
                 m_pMember->insert( std::unique_ptr<SwContent>(pCnt) );
                 const size_t nPos = m_pMember->size() - 1;
-                if (pOldMember && !*pbContentChanged && nOldMemberCount > nPos 
&&
-                        (*pOldMember)[nPos]->IsInvisible() != 
pCnt->IsInvisible())
-                    *pbContentChanged = true;
+                if (pOldMember)
+                {
+                    assert(pbContentChanged && "pbContentChanged is always set 
if pOldMember is");
+                    if (!*pbContentChanged && nOldMemberCount > nPos &&
+                            (*pOldMember)[nPos]->IsInvisible() != 
pCnt->IsInvisible())
+                        *pbContentChanged = true;
+                }
             }
         }
         break;
@@ -851,6 +858,7 @@ void SwContentType::FillMemberList(bool* pbContentChanged)
                     // creation due to a sorted list being used here (before,
                     // entries with same index were compared already at 
creation
                     // time what worked before a sorted list was used)
+                    assert(pbContentChanged && "pbContentChanged is always set 
if pOldMember is");
                     *pbContentChanged = checkVisibilityChanged(
                         *pOldMember,
                         *m_pMember);
@@ -861,8 +869,12 @@ void SwContentType::FillMemberList(bool* pbContentChanged)
         default: break;
     }
     m_nMemberCount = m_pMember->size();
-    if (pOldMember && !*pbContentChanged && pOldMember->size() != 
m_nMemberCount)
-        *pbContentChanged = true;
+    if (pOldMember)
+    {
+        assert(pbContentChanged && "pbContentChanged is always set if 
pOldMember is");
+        if (!*pbContentChanged && pOldMember->size() != m_nMemberCount)
+            *pbContentChanged = true;
+    }
 
     m_bDataValid = true;
 }

Reply via email to