sd/source/ui/sidebar/SlideBackground.cxx |   28 ++++++++++++++++++++--------
 1 file changed, 20 insertions(+), 8 deletions(-)

New commits:
commit 72f4cba0a2a917250d8af31a1208f75fbdd29d0b
Author:     Caolán McNamara <caol...@redhat.com>
AuthorDate: Thu Dec 15 21:21:44 2022 +0000
Commit:     Xisco Fauli <xiscofa...@libreoffice.org>
CommitDate: Fri Dec 16 08:47:49 2022 +0000

    likely fix for frequent mpGradientItem->GetName() crash
    
    crash report id: ec5a64d7-b354-457e-92a3-1bd51208e7c7
    
    Change-Id: Ie64993190baa5e3ea9228214bea1ee4d82044c51
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/144267
    Tested-by: Jenkins
    Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org>

diff --git a/sd/source/ui/sidebar/SlideBackground.cxx 
b/sd/source/ui/sidebar/SlideBackground.cxx
index 89c16e0d6fc2..61cd3763f6df 100644
--- a/sd/source/ui/sidebar/SlideBackground.cxx
+++ b/sd/source/ui/sidebar/SlideBackground.cxx
@@ -1022,30 +1022,42 @@ IMPL_LINK_NOARG(SlideBackground, FillStyleModifyHdl, 
weld::ComboBox&, void)
 
         case SOLID:
         {
-            const XFillColorItem aItem( OUString(), 
mpColorItem->GetColorValue() );
-            GetBindings()->GetDispatcher()->ExecuteList(SID_ATTR_PAGE_COLOR, 
SfxCallMode::RECORD, { &aItem });
+            if (mpColorItem)
+            {
+                const XFillColorItem aItem( OUString(), 
mpColorItem->GetColorValue() );
+                
GetBindings()->GetDispatcher()->ExecuteList(SID_ATTR_PAGE_COLOR, 
SfxCallMode::RECORD, { &aItem });
+            }
         }
         break;
 
         case GRADIENT:
         {
-            const XFillGradientItem aItem( mpGradientItem->GetName(), 
mpGradientItem->GetGradientValue() );
-            
GetBindings()->GetDispatcher()->ExecuteList(SID_ATTR_PAGE_GRADIENT, 
SfxCallMode::RECORD, { &aItem });
+            if (mpGradientItem)
+            {
+                const XFillGradientItem aItem( mpGradientItem->GetName(), 
mpGradientItem->GetGradientValue() );
+                
GetBindings()->GetDispatcher()->ExecuteList(SID_ATTR_PAGE_GRADIENT, 
SfxCallMode::RECORD, { &aItem });
+            }
         }
         break;
 
         case HATCH:
         {
-            const XFillHatchItem aItem( mpHatchItem->GetName(), 
mpHatchItem->GetHatchValue() );
-            GetBindings()->GetDispatcher()->ExecuteList(SID_ATTR_PAGE_HATCH, 
SfxCallMode::RECORD, { &aItem });
+            if (mpHatchItem)
+            {
+                const XFillHatchItem aItem( mpHatchItem->GetName(), 
mpHatchItem->GetHatchValue() );
+                
GetBindings()->GetDispatcher()->ExecuteList(SID_ATTR_PAGE_HATCH, 
SfxCallMode::RECORD, { &aItem });
+            }
         }
         break;
 
         case BITMAP:
         case PATTERN:
         {
-            const XFillBitmapItem aItem( mpBitmapItem->GetName(), 
mpBitmapItem->GetGraphicObject() );
-            GetBindings()->GetDispatcher()->ExecuteList(SID_ATTR_PAGE_BITMAP, 
SfxCallMode::RECORD, { &aItem });
+            if (mpBitmapItem)
+            {
+                const XFillBitmapItem aItem( mpBitmapItem->GetName(), 
mpBitmapItem->GetGraphicObject() );
+                
GetBindings()->GetDispatcher()->ExecuteList(SID_ATTR_PAGE_BITMAP, 
SfxCallMode::RECORD, { &aItem });
+            }
         }
         break;
 

Reply via email to