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; }