vcl/source/window/stacking.cxx |    6 ++++++
 1 file changed, 6 insertions(+)

New commits:
commit 8cdb6cf9a95f068d465a7fc36316f1c84547dcf8
Author:     Caolán McNamara <caolan.mcnam...@collabora.com>
AuthorDate: Tue May 27 10:04:42 2025 +0100
Commit:     Caolán McNamara <caolan.mcnam...@collabora.com>
CommitDate: Tue May 27 13:18:51 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 <caolan.mcnam...@collabora.com>
    Tested-by: Jenkins

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;

Reply via email to