vcl/source/uitest/uiobject.cxx | 2 +- vcl/source/window/window.cxx | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-)
New commits: commit 7fc110d776caa32e7209880d19aab45e3f1b46ba Author: Michael Meeks <michael.me...@collabora.com> AuthorDate: Fri Jul 9 15:14:50 2021 +0100 Commit: Michael Meeks <michael.me...@collabora.com> CommitDate: Wed Jul 14 22:55:40 2021 +0200 vcl: make get_id safe for disposed windows; avoid unsafe use as well. crash from: findChild(vcl::Window*, rtl::OUString const&, bool) include/rtl/ustring.hxx:1744 WindowUIObject::get_visible_child(rtl::OUString const&) /vcl/source/uitest/uiobject.cxx:463 lcl_sendDialogEvent ... Change-Id: Ic1756c7b03f2dee9780fb1a735917f1d0fc11876 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118690 Tested-by: Michael Meeks <michael.me...@collabora.com> Reviewed-by: Michael Meeks <michael.me...@collabora.com> diff --git a/vcl/source/uitest/uiobject.cxx b/vcl/source/uitest/uiobject.cxx index c10cc5f21d9d..08e2dc01fb9c 100644 --- a/vcl/source/uitest/uiobject.cxx +++ b/vcl/source/uitest/uiobject.cxx @@ -395,7 +395,7 @@ vcl::Window* findChild(vcl::Window* pParent, const OUString& rID, bool bRequireV for (size_t i = 0; i < nCount; ++i) { vcl::Window* pChild = pParent->GetChild(i); - if (pChild && pChild->get_id() == rID + if (pChild && !pChild->isDisposed() && pChild->get_id() == rID && (!bRequireVisible || pChild->IsVisible())) return pChild; diff --git a/vcl/source/window/window.cxx b/vcl/source/window/window.cxx index 0143bf85ee2f..60160d46b71a 100644 --- a/vcl/source/window/window.cxx +++ b/vcl/source/window/window.cxx @@ -3889,7 +3889,10 @@ void Window::set_id(const OUString& rID) const OUString& Window::get_id() const { - return mpWindowImpl->maID; + if (mpWindowImpl) + return mpWindowImpl->maID; + static OUString empty; + return empty; } FactoryFunction Window::GetUITestFactory() const _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits