vcl/source/window/dialog.cxx |   16 +++++++++++++---
 1 file changed, 13 insertions(+), 3 deletions(-)

New commits:
commit dee44fe48ffa928ca3ef56152a7666412894f3ec
Author:     Szymon Kłos <szymon.k...@collabora.com>
AuthorDate: Mon Nov 29 08:30:39 2021 +0100
Commit:     Szymon Kłos <szymon.k...@collabora.com>
CommitDate: Thu Dec 30 09:02:21 2021 +0100

    Warn instead of crash when mpDialogImpl is missing
    
    In LOK case we have some issues with dialogs to solve.
    Try to not crash in release but warn.
    
    Change-Id: Ic966d2b317a4e454d1d164ae36a96327c435ae6b
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126020
    Reviewed-by: Michael Meeks <michael.me...@collabora.com>
    Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com>
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127681
    Tested-by: Jenkins
    Reviewed-by: Szymon Kłos <szymon.k...@collabora.com>

diff --git a/vcl/source/window/dialog.cxx b/vcl/source/window/dialog.cxx
index d0cd1cde95f2..96cd04008148 100644
--- a/vcl/source/window/dialog.cxx
+++ b/vcl/source/window/dialog.cxx
@@ -1066,10 +1066,20 @@ short Dialog::Execute()
         OSL_FAIL( "Dialog::Execute() - Dialog destroyed in Execute()" );
     }
 
-    tools::Long nRet = mpDialogImpl->mnResult;
-    mpDialogImpl->mnResult = -1;
+    assert(mpDialogImpl);
 
-    return static_cast<short>(nRet);
+    if (mpDialogImpl)
+    {
+        tools::Long nRet = mpDialogImpl->mnResult;
+        mpDialogImpl->mnResult = -1;
+
+        return static_cast<short>(nRet);
+    }
+    else
+    {
+        SAL_WARN( "vcl", "Dialog::Execute() : missing mpDialogImpl " );
+        return 0;
+    }
 }
 
 // virtual

Reply via email to