sc/source/ui/Accessibility/AccessibleSpreadsheet.cxx | 4 ++++ 1 file changed, 4 insertions(+)
New commits: commit 4d2c41e8171139e210d94b0c3c2b6b3d6392665a Author: Michael Weghorn <m.wegh...@posteo.de> AuthorDate: Thu May 23 12:57:46 2024 +0200 Commit: Michael Weghorn <m.wegh...@posteo.de> CommitDate: Sat May 25 09:02:38 2024 +0200 related tdf#158914 sc a11y: Release references when disposing sheet Clear all `ScAccessibleCell` references that are owned by `ScAccessibleSpreadsheet` when disposing the sheet instead of when the sheet is deleted. While `ScAccessibleSpreadsheet::disposing` is always called, `ScAccessibleSpreadsheet::~ScAccessibleSpreadsheet` is not called until all of the sheet's `ScAccessibleCell` instances have been deleted. So make sure that `ScAccessibleSpreadsheet::disposing` releases all `ScAccessibleCell` references. This might possibly reduce some of the leaks mentioned in [1]. [1] https://gerrit.libreoffice.org/c/core/+/167961/comments/15a6a4e4_91a77291 Change-Id: Iaf14338945c1899d54c8e7f8a16f38a48316ac98 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167985 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.wegh...@posteo.de> diff --git a/sc/source/ui/Accessibility/AccessibleSpreadsheet.cxx b/sc/source/ui/Accessibility/AccessibleSpreadsheet.cxx index fdeea8d7579a..7296863d0cee 100644 --- a/sc/source/ui/Accessibility/AccessibleSpreadsheet.cxx +++ b/sc/source/ui/Accessibility/AccessibleSpreadsheet.cxx @@ -310,7 +310,11 @@ void SAL_CALL ScAccessibleSpreadsheet::disposing() mpViewShell->RemoveAccessibilityObject(*this); mpViewShell = nullptr; } + mpAccCell.clear(); + m_mapSelectionSend.clear(); + m_mapFormulaSelectionSend.clear(); + m_pAccFormulaCell.clear(); ScAccessibleTableBase::disposing(); }