[Libreoffice-commits] core.git: Branch 'libreoffice-6-1' - cui/source

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Wed Jan 2 06:36:50 UTC 2019


 cui/source/customize/SvxMenuConfigPage.cxx    |    6 ++++++
 cui/source/customize/SvxToolbarConfigPage.cxx |   17 ++++++++++++++---
 cui/source/customize/cfg.cxx                  |   12 ++++++++----
 3 files changed, 28 insertions(+), 7 deletions(-)

New commits:
commit 808cc4d5fd87e6e6719a4a16f815e5897608bd2d
Author:     Muhammet Kara <muhammet.kara at collabora.com>
AuthorDate: Wed Jan 2 01:24:20 2019 +0300
Commit:     Muhammet Kara <muhammet.kara at collabora.com>
CommitDate: Wed Jan 2 07:36:29 2019 +0100

    Resolves tdf#122383 and tdf#122410
    
    Add some null pointer checks
    
    Change-Id: I905c6dd46a5019e66d9c2e59374cc7d1ce83397b
    Reviewed-on: https://gerrit.libreoffice.org/65789
    Tested-by: Jenkins
    Reviewed-by: Muhammet Kara <muhammet.kara at collabora.com>
    (cherry picked from commit be8897d9c63a77b223a9c0aed1d2eb689e0e0082)
    Reviewed-on: https://gerrit.libreoffice.org/65799

diff --git a/cui/source/customize/SvxMenuConfigPage.cxx b/cui/source/customize/SvxMenuConfigPage.cxx
index 9b69c64a1374..a890fef033ab 100644
--- a/cui/source/customize/SvxMenuConfigPage.cxx
+++ b/cui/source/customize/SvxMenuConfigPage.cxx
@@ -500,6 +500,12 @@ IMPL_LINK_NOARG( SvxMenuConfigPage, ResetMenuHdl, Button *, void )
 {
     SvxConfigEntry* pMenuData = GetTopLevelSelection();
 
+    if (pMenuData == nullptr)
+    {
+        SAL_WARN("cui.customize", "RHB top level selection is null. A menu must be selected to reset!");
+        return;
+    }
+
     std::unique_ptr<weld::MessageDialog> xQueryBox(Application::CreateMessageDialog(GetFrameWeld(),
                                                    VclMessageType::Question, VclButtonsType::YesNo,
                                                    CuiResId(RID_SVXSTR_CONFIRM_RESTORE_DEFAULT_MENU)));
diff --git a/cui/source/customize/SvxToolbarConfigPage.cxx b/cui/source/customize/SvxToolbarConfigPage.cxx
index bdca809fd326..f3727b4c3234 100644
--- a/cui/source/customize/SvxToolbarConfigPage.cxx
+++ b/cui/source/customize/SvxToolbarConfigPage.cxx
@@ -515,9 +515,14 @@ IMPL_LINK( SvxToolbarConfigPage, ModifyItemHdl, MenuButton *, pButton, void )
 
     // get currently selected toolbar
     SvxConfigEntry* pToolbar = GetTopLevelSelection();
-
     OString sIdent = pButton->GetCurItemIdent();
 
+    if (sIdent.isEmpty() || pToolbar == nullptr)
+    {
+        SAL_WARN("cui.customize", "No toolbar selected, or empty sIdent!");
+        return;
+    }
+
     if (sIdent == "renameItem")
     {
         SvTreeListEntry* pActEntry = m_pContentsListBox->GetCurEntry();
@@ -856,10 +861,18 @@ IMPL_LINK_NOARG( SvxToolbarConfigPage, SelectToolbar, ListBox&, void )
 void SvxToolbarConfigPage::AddFunction(
     SvTreeListEntry* pTarget, bool bFront )
 {
+    SvxConfigEntry* pToolbar = GetTopLevelSelection();
+
+    if (pToolbar == nullptr)
+        return;
+
     // Add the command to the contents listbox of the selected toolbar
     SvTreeListEntry* pNewLBEntry =
         SvxConfigPage::AddFunction( pTarget, bFront, true/*bAllowDuplicates*/ );
 
+    if (pNewLBEntry == nullptr)
+        return;
+
     SvxConfigEntry* pEntry = static_cast<SvxConfigEntry*>(pNewLBEntry->GetUserData());
 
     if ( pEntry->IsBinding() )
@@ -878,8 +891,6 @@ void SvxToolbarConfigPage::AddFunction(
     // TODO: Figure out a way to show the changes on the toolbar, but revert if
     //       the dialog is closed by pressing "Cancel"
     // get currently selected toolbar and apply change
-    SvxConfigEntry* pToolbar = GetTopLevelSelection();
-
     if ( pToolbar != nullptr )
     {
         static_cast<ToolbarSaveInData*>( GetSaveInData() )->ApplyToolbar( pToolbar );
diff --git a/cui/source/customize/cfg.cxx b/cui/source/customize/cfg.cxx
index 8d64d3ce2e3c..df347cc811e2 100644
--- a/cui/source/customize/cfg.cxx
+++ b/cui/source/customize/cfg.cxx
@@ -1600,8 +1600,9 @@ SvTreeListEntry* SvxConfigPage::AddFunction(
     SvTreeListEntry* pTarget, bool bFront, bool bAllowDuplicates )
 {
     OUString aURL = GetScriptURL();
+    SvxConfigEntry* pParent = GetTopLevelSelection();
 
-    if ( aURL.isEmpty() )
+    if ( aURL.isEmpty() || pParent == nullptr )
     {
         return nullptr;
     }
@@ -1624,8 +1625,6 @@ SvTreeListEntry* SvxConfigPage::AddFunction(
         pNewEntryData->SetName( GetSelectedDisplayName() );
 
     // check that this function is not already in the menu
-    SvxConfigEntry* pParent = GetTopLevelSelection();
-
     if ( !bAllowDuplicates )
     {
         for (auto const& entry : *pParent->GetEntries())
@@ -1649,8 +1648,13 @@ SvTreeListEntry* SvxConfigPage::InsertEntry(
     SvTreeListEntry* pTarget,
     bool bFront )
 {
+    SvxConfigEntry* pTopLevelSelection = GetTopLevelSelection();
+
+    if (pTopLevelSelection == nullptr)
+        return nullptr;
+
     // Grab the entries list for the currently selected menu
-    SvxEntries* pEntries = GetTopLevelSelection()->GetEntries();
+    SvxEntries* pEntries = pTopLevelSelection->GetEntries();
 
     SvTreeListEntry* pNewEntry = nullptr;
     SvTreeListEntry* pCurEntry =


More information about the Libreoffice-commits mailing list