cui/source/tabpages/numpages.cxx |    9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

New commits:
commit e219fc0ede27854a82681fde8c1fa3d4f60b2068
Author:     Julien Nabet <serval2...@yahoo.fr>
AuthorDate: Thu Jul 25 10:27:31 2024 +0200
Commit:     Julien Nabet <serval2...@yahoo.fr>
CommitDate: Thu Jul 25 12:14:06 2024 +0200

    tdf#162174: fix crash when opening Bullets and Numbering dialog a second 
time
    
    It seems we must first retrieve the array of values from:
    - officecfg::Office::Common::BulletsNumbering::DefaultBullets
    - officecfg::Office::Common::BulletsNumbering::DefaultBulletsFonts
    before retrieving the value by index.
    
    Change-Id: I9cdf124f73c52f3027ae8e97a73e01e0efb73603
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171003
    Tested-by: Jenkins
    Reviewed-by: Julien Nabet <serval2...@yahoo.fr>

diff --git a/cui/source/tabpages/numpages.cxx b/cui/source/tabpages/numpages.cxx
index 08f05c9b9a0f..6a838d001772 100644
--- a/cui/source/tabpages/numpages.cxx
+++ b/cui/source/tabpages/numpages.cxx
@@ -335,6 +335,8 @@ SvxBulletPickTabPage::SvxBulletPickTabPage(weld::Container* 
pPage, weld::DialogC
     m_xExamplesVS->SetSelectHdl(LINK(this, SvxBulletPickTabPage, 
NumSelectHdl_Impl));
     m_xExamplesVS->SetDoubleClickHdl(LINK(this, SvxBulletPickTabPage, 
DoubleClickHdl_Impl));
     m_xBtChangeBullet->connect_clicked(LINK(this, SvxBulletPickTabPage, 
ClickAddChangeHdl_Impl));
+    m_aBulletSymbols = 
officecfg::Office::Common::BulletsNumbering::DefaultBullets::get();
+    m_aBulletSymbolsFonts = 
officecfg::Office::Common::BulletsNumbering::DefaultBulletsFonts::get();
 }
 
 SvxBulletPickTabPage::~SvxBulletPickTabPage()
@@ -440,10 +442,9 @@ IMPL_LINK_NOARG(SvxBulletPickTabPage, NumSelectHdl_Impl, 
ValueSet*, void)
     bPreset = false;
     bModified = true;
     sal_uInt16 nIndex = m_xExamplesVS->GetSelectedItemId() - 1;
-    sal_Unicode cChar = 
officecfg::Office::Common::BulletsNumbering::DefaultBullets::get()[nIndex].toChar();
+    sal_Unicode cChar = m_aBulletSymbols[nIndex].toChar();
     vcl::Font& rActBulletFont = lcl_GetDefaultBulletFont();
-    rActBulletFont.SetFamilyName(
-        
officecfg::Office::Common::BulletsNumbering::DefaultBulletsFonts::get()[nIndex]);
+    rActBulletFont.SetFamilyName(m_aBulletSymbolsFonts[nIndex]);
 
     sal_uInt16 nMask = 1;
     for(sal_uInt16 i = 0; i < pActNum->GetLevelCount(); i++)
@@ -524,8 +525,6 @@ IMPL_LINK_NOARG(SvxBulletPickTabPage, 
ClickAddChangeHdl_Impl, weld::Button&, voi
         _nMask <<= 1;
     }
 
-    m_aBulletSymbols = 
officecfg::Office::Common::BulletsNumbering::DefaultBullets::get();
-    m_aBulletSymbolsFonts = 
officecfg::Office::Common::BulletsNumbering::DefaultBulletsFonts::get();
     css::uno::Sequence<OUString> aBulletSymbolsList(m_aBulletSymbols.size());
     css::uno::Sequence<OUString> 
aBulletSymbolsFontsList(m_aBulletSymbolsFonts.size());
     auto aBulletSymbolsListRange = asNonConstRange(aBulletSymbolsList);

Reply via email to