From 18eb7166d18b6ba91e0bb2415f3709ac5b30416d Mon Sep 17 00:00:00 2001 From: Caolán McNamara Date: Fri, 22 Nov 2019 10:10:27 +0000 Subject: Resolves: rhbz#1775544 crash in navigator MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit see demo reproducer in rhbz#1775544 nChildCount is a count of all descendants not just direct children. Just looping while FirstChild returns something is sufficient. Change-Id: If7b16032731d694bfffaae22faad5fe194d1822f Reviewed-on: https://gerrit.libreoffice.org/83455 Tested-by: Jenkins Reviewed-by: Caolán McNamara Tested-by: Caolán McNamara --- sw/source/uibase/utlui/content.cxx | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/sw/source/uibase/utlui/content.cxx b/sw/source/uibase/utlui/content.cxx index 21b72b3a9bcd..a5eb88d677a4 100644 --- a/sw/source/uibase/utlui/content.cxx +++ b/sw/source/uibase/utlui/content.cxx @@ -2268,12 +2268,8 @@ bool SwContentTree::HasContentChanged() } if(bRemoveChildren) { - for(size_t j = 0; j < nChildCount; ++j) - { - SvTreeListEntry *const pRemove = FirstChild(pEntry); - assert(pRemove); - GetModel()->Remove(pRemove); - } + while (SvTreeListEntry *const pRemove = FirstChild(pEntry)) + RemoveEntry(pRemove); } if(!nChildCount) { -- cgit