sc/source/ui/Accessibility/AccessibleSpreadsheet.cxx |    4 ++++
 1 file changed, 4 insertions(+)

New commits:
commit e7a660709c153239bfec8ddb445d0ee7ed790215
Author:     Michael Weghorn <m.wegh...@posteo.de>
AuthorDate: Thu May 23 12:57:46 2024 +0200
Commit:     Noel Grandin <noel.gran...@collabora.co.uk>
CommitDate: Sun May 26 09:53:04 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>
    (cherry picked from commit 4d2c41e8171139e210d94b0c3c2b6b3d6392665a)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168050
    Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk>
    Reviewed-by: Patrick Luby <guibomac...@gmail.com>

diff --git a/sc/source/ui/Accessibility/AccessibleSpreadsheet.cxx 
b/sc/source/ui/Accessibility/AccessibleSpreadsheet.cxx
index 7aaa7237ccac..020386a69af8 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();
 }

Reply via email to