tdf#148397: Crash on font features dialog opening with EB Garamond
bt:
0 0x00007f7ba5ef549c in rtl::str::acquire<_rtl_uString>(_rtl_uString*) (pThis=0x0) at sal/rtl/strtmpl.hxx:825
1 0x00007f7ba5ef8d45 in rtl_uString_acquire(rtl_uString*) (pThis=0x0) at sal/rtl/ustring.cxx:1199
2 0x00007f7b485757e3 in rtl::OUString::OUString(_rtl_uString*) (this=0x7ffc345a9f20, str=0x0) at include/rtl/ustring.hxx:252
3 0x00007f7b485fd1da in cui::FontFeaturesDialog::fillGrid(std::__debug::vector<vcl::font::Feature, std::allocator<vcl::font::Feature> > const&) (this=
0x7ffc345aa538, rFontFeatures=std::__debug::vector of length 43, capacity 64 = {...}) at cui/source/dialogs/FontFeaturesDialog.cxx:98
4 0x00007f7b485fcc83 in cui::FontFeaturesDialog::initialize() (this=0x7ffc345aa538) at cui/source/dialogs/FontFeaturesDialog.cxx:66
5 0x00007f7b485fc8b9 in cui::FontFeaturesDialog::FontFeaturesDialog(weld::Window*, rtl::OUString const&) (this=0x7ffc345aa538, pParent=0x6f2f748, rFontName="EB Garamond 12")
at cui/source/dialogs/FontFeaturesDialog.cxx:28
6 0x00007f7b488f3165 in SvxCharNamePage::FontFeatureButtonClicked(weld::Button&) (this=0x6f0a620, rButton=...) at cui/source/tabpages/chardlg.cxx:1157
Revealed with 5afdcad4c0e7850b18996c549892b9360cd8973f
Pass context and resource string down to boost::locale separately
because this is often on a hot path, and we can avoid the splitting and
joining of strings like this.
Change-Id: I20b18c8f46014feb453f81d66dd7cb490124efa1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132590
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Jenkins
(cherry picked from commit ad3d2d1bc7e07f79a26841d89a85e94999a7c8ca)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132600
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
diff --git a/cui/source/dialogs/FontFeaturesDialog.cxx b/cui/source/dialogs/FontFeaturesDialog.cxx
index 4735de1..d41afa8 100644
--- a/cui/source/dialogs/FontFeaturesDialog.cxx
+++ b/cui/source/dialogs/FontFeaturesDialog.cxx
@@ -96,7 +96,7 @@ int FontFeaturesDialog::fillGrid(std::vector<vcl::font::Feature> const& rFontFea
if (rFontFeature.m_aDefinition)
aDefinition = rFontFeature.m_aDefinition;
if (!aDefinition)
aDefinition = { nFontFeatureCode, nullptr };
aDefinition = { nFontFeatureCode, "" };
m_aFeatureItems.emplace_back(m_xContentGrid.get());