summaryrefslogtreecommitdiff
path: root/editeng/source/accessibility
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2023-05-11 09:27:14 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2023-05-11 10:50:03 +0200
commitd309298d1f70f4ffbf699b1aa1b2bfe08be8c4ef (patch)
treeae4270374e447851af40986cc788be40be19dfdb /editeng/source/accessibility
parent35845a056e332c1d78d536b613aeb3183af09a91 (diff)
tdf#155235 Draw crashes on close: SIGSEGV in SalInstance:GetYieldMutex()
This is a regression from commit 3b7db802731826b6cc3b55100470b0c61c1f2dfa Author: Noel Grandin <noel.grandin@collabora.co.uk> Date: Thu May 4 10:06:14 2023 +0200 tdf#105404 [API CHANGE] add index to accessiblity change event The list of children in DocumentFocusListener is getting out of sync because something is not sending add/remove events for accessible objects, a problem which was hidden before the commit above. I can't find the add/remove problem, so do the next best thing - fix the dispose methods of various accessible objects so that they clear references to other objects, which results in the relevant objects being destructed in an order which does not lead to crashes. Change-Id: Iac7f48d6e3f2bdf30edb5c7fd3c5de861aec4b7a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151657 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'editeng/source/accessibility')
-rw-r--r--editeng/source/accessibility/AccessibleContextBase.cxx2
1 files changed, 2 insertions, 0 deletions
diff --git a/editeng/source/accessibility/AccessibleContextBase.cxx b/editeng/source/accessibility/AccessibleContextBase.cxx
index 6ef2fe654548..8dad5b1344b4 100644
--- a/editeng/source/accessibility/AccessibleContextBase.cxx
+++ b/editeng/source/accessibility/AccessibleContextBase.cxx
@@ -404,6 +404,8 @@ void SAL_CALL AccessibleContextBase::disposing()
comphelper::AccessibleEventNotifier::revokeClientNotifyDisposing( mnClientId, *this );
mnClientId = 0;
}
+ mxParent.clear();
+ mxRelationSet.clear();
}