diff options
author | Michael Weghorn <m.weghorn@posteo.de> | 2024-05-23 12:57:46 +0200 |
---|---|---|
committer | Michael Weghorn <m.weghorn@posteo.de> | 2024-05-25 09:02:38 +0200 |
commit | 4d2c41e8171139e210d94b0c3c2b6b3d6392665a (patch) | |
tree | 7b0fa22579cc82f173ba76afd1fe11b8338267c3 /sc/source/ui | |
parent | b227481b63000b556e648ad607ffeb86681482a0 (diff) |
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.weghorn@posteo.de>
Diffstat (limited to 'sc/source/ui')
-rw-r--r-- | sc/source/ui/Accessibility/AccessibleSpreadsheet.cxx | 4 |
1 files changed, 4 insertions, 0 deletions
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(); } |