From 16bb30098f4dd2013ca2cd87e53d423479f2c35c Mon Sep 17 00:00:00 2001 From: Patrick Luby Date: Wed, 10 Jan 2024 19:30:17 -0500 Subject: tdf#159089 dispose custom accessible here and unset for `m_xDrawingArea` rather than waiting for `m_xDrawingArea` to get disposed, to prevent unsafe use of the now potentially non-functional accessible until it gets disposed with the VclDrawingArea Change-Id: I5b8720ac4d5ed41cb1775b0142b17d198e9f036d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161903 Tested-by: Jenkins Reviewed-by: Patrick Luby (cherry picked from commit 244bd399732017615bab2c34c2b29d6a80d27ae9) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162006 Reviewed-by: Michael Weghorn --- vcl/source/app/salvtables.cxx | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'vcl') diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx index 17e6435c3fc2..95beb907f6c0 100644 --- a/vcl/source/app/salvtables.cxx +++ b/vcl/source/app/salvtables.cxx @@ -6340,6 +6340,19 @@ SalInstanceDrawingArea::~SalInstanceDrawingArea() m_xDrawingArea->SetResizeHdl(Link()); m_xDrawingArea->SetPaintHdl( Link, void>()); + + // tdf#159089 dispose custom accessible here and unset for `m_xDrawingArea` + // rather than waiting for `m_xDrawingArea` to get disposed, to prevent + // unsafe use of the now potentially non-functional accessible until it + // gets disposed with the VclDrawingArea + css::uno::Reference xAccessible + = m_xDrawingArea->GetAccessible(); + css::uno::Reference xComp(xAccessible, css::uno::UNO_QUERY); + if (xComp.is()) + { + xComp->dispose(); + m_xDrawingArea->SetAccessible(nullptr); + } } OutputDevice& SalInstanceDrawingArea::get_ref_device() { return *m_xDrawingArea->GetOutDev(); } -- cgit