vcl/source/window/stacking.cxx | 6 ++++++ 1 file changed, 6 insertions(+)
New commits: commit ccbb205c78c1576ac6d50bd2c5f784c2034f1084 Author: Caolán McNamara <[email protected]> AuthorDate: Tue May 27 17:16:21 2025 +0100 Commit: Christian Lohmaier <[email protected]> CommitDate: Fri May 30 13:49:39 2025 +0200 move this check to earlier Change-Id: I3082b828327f0b235ad867001a643ad4766aa35e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/185925 Tested-by: Jenkins Reviewed-by: Caolán McNamara <[email protected]> (cherry picked from commit dff8e9123cac3e6e942e0c081e64fe1a591c37cb) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/185939 Reviewed-by: Xisco Fauli <[email protected]> Signed-off-by: Xisco Fauli <[email protected]> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/185944 Reviewed-by: Miklos Vajna <[email protected]> Reviewed-by: Christian Lohmaier <[email protected]> Tested-by: Christian Lohmaier <[email protected]> diff --git a/vcl/source/window/stacking.cxx b/vcl/source/window/stacking.cxx index 142a3750b125..4ab141a2ca66 100644 --- a/vcl/source/window/stacking.cxx +++ b/vcl/source/window/stacking.cxx @@ -842,6 +842,12 @@ void Window::SetParent( vcl::Window* pNewParent ) if( !pNewParent || pNewParent == this ) return; + if (!mpWindowImpl) + { + SAL_WARN("vcl", "Window::SetParent(): mpWindowImpl == NULL"); + return; + } + // check if the taskpanelist would change and move the window pointer accordingly SystemWindow *pSysWin = ImplGetLastSystemWindow(this); SystemWindow *pNewSysWin = nullptr; @@ -866,12 +872,6 @@ void Window::SetParent( vcl::Window* pNewParent ) ImplSetFrameParent( pNewParent ); - if (!mpWindowImpl) - { - SAL_WARN("vcl", "Window::SetParent(): mpWindowImpl == NULL"); - return; - } - if ( mpWindowImpl->mpBorderWindow ) { mpWindowImpl->mpRealParent = pNewParent; commit 87c7014aaec106971d259c86b93c8293159d276b Author: Caolán McNamara <[email protected]> AuthorDate: Tue May 27 10:04:42 2025 +0100 Commit: Christian Lohmaier <[email protected]> CommitDate: Fri May 30 13:49:33 2025 +0200 crash seen with dialog open when frame closed program/libmergedlo.so vcl::Window::SetParent(vcl::Window*) include/rtl/ref.hxx:205 program/libmergedlo.so weld::MessageDialogController::~MessageDialogController() vcl/source/app/weldutils.cxx:83 program/libmergedlo.so std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release_last_use_cold() /opt/rh/devtoolset-12/root/usr/include/c++/12/bits/shared_ptr_base.h:175 program/libmergedlo.so std::default_delete<DialogImpl>::operator()(DialogImpl*) const [clone .part.0] /opt/rh/devtoolset-12/root/usr/include/c++/12/bits/shared_ptr_base.h:354 program/libmergedlo.so Dialog::dispose() vcl/source/window/dialog.cxx:623 program/libmergedlo.so UnoWrapper::WindowDestroyed(vcl::Window*) include/rtl/ref.hxx:126 program/libmergedlo.so vcl::Window::dispose() include/com/sun/star/uno/Reference.h:102 program/libmergedlo.so VCLXWindow::dispose() include/rtl/ref.hxx:126 program/libmergedlo.so (anonymous namespace)::XFrameImpl::disposing() include/vcl/svapp.hxx:1351 program/libuno_cppuhelpergcc3.so.3 cppu::WeakComponentImplHelperBase::dispose() cppuhelper/source/implbase.cxx:104 program/libmergedlo.so (anonymous namespace)::XFrameImpl::close(unsigned char) include/com/sun/star/uno/Reference.hxx:113 Change-Id: I60870d7b47fe91a15c67a0583cb413cfdfff7bec Reviewed-on: https://gerrit.libreoffice.org/c/core/+/185890 Reviewed-by: Caolán McNamara <[email protected]> Tested-by: Jenkins (cherry picked from commit 8cdb6cf9a95f068d465a7fc36316f1c84547dcf8) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/185922 Reviewed-by: Xisco Fauli <[email protected]> Signed-off-by: Xisco Fauli <[email protected]> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/185943 Reviewed-by: Miklos Vajna <[email protected]> Tested-by: Christian Lohmaier <[email protected]> Reviewed-by: Christian Lohmaier <[email protected]> diff --git a/vcl/source/window/stacking.cxx b/vcl/source/window/stacking.cxx index 5ce78f69b426..142a3750b125 100644 --- a/vcl/source/window/stacking.cxx +++ b/vcl/source/window/stacking.cxx @@ -866,6 +866,12 @@ void Window::SetParent( vcl::Window* pNewParent ) ImplSetFrameParent( pNewParent ); + if (!mpWindowImpl) + { + SAL_WARN("vcl", "Window::SetParent(): mpWindowImpl == NULL"); + return; + } + if ( mpWindowImpl->mpBorderWindow ) { mpWindowImpl->mpRealParent = pNewParent;
