vcl/source/gdi/CommonSalLayout.cxx |   14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

New commits:
commit bed301f42f0e51126c63c02c9a78091f7dec420c
Author:     Noel Grandin <[email protected]>
AuthorDate: Wed May 11 11:42:56 2022 +0200
Commit:     Noel Grandin <[email protected]>
CommitDate: Wed May 11 20:56:57 2022 +0200

    elide temporary OString in GenericSalLayout::LayoutText
    
    Change-Id: I2169087bf780fb7b42aad8db0ee7484bf48d9ebb
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/134197
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <[email protected]>

diff --git a/vcl/source/gdi/CommonSalLayout.cxx 
b/vcl/source/gdi/CommonSalLayout.cxx
index 0007e3f355d1..0de505f7820e 100644
--- a/vcl/source/gdi/CommonSalLayout.cxx
+++ b/vcl/source/gdi/CommonSalLayout.cxx
@@ -437,10 +437,6 @@ bool 
GenericSalLayout::LayoutText(vcl::text::ImplLayoutArgs& rArgs, const SalLay
             const int nEndRunPos = aSubRun.mnEnd;
             const int nRunLen = nEndRunPos - nMinRunPos;
 
-            OString sLanguage = msLanguage;
-            if (sLanguage.isEmpty())
-                sLanguage = OUStringToOString(rArgs.maLanguageTag.getBcp47(), 
RTL_TEXTENCODING_ASCII_US);
-
             int nHbFlags = HB_BUFFER_FLAGS_DEFAULT;
             if (nMinRunPos == 0)
                 nHbFlags |= HB_BUFFER_FLAG_BOT; /* Beginning-of-text */
@@ -449,7 +445,15 @@ bool 
GenericSalLayout::LayoutText(vcl::text::ImplLayoutArgs& rArgs, const SalLay
 
             hb_buffer_set_direction(pHbBuffer, aSubRun.maDirection);
             hb_buffer_set_script(pHbBuffer, aSubRun.maScript);
-            hb_buffer_set_language(pHbBuffer, 
hb_language_from_string(sLanguage.getStr(), -1));
+            if (!msLanguage.isEmpty())
+            {
+                hb_buffer_set_language(pHbBuffer, 
hb_language_from_string(msLanguage.getStr(), -1));
+            }
+            else
+            {
+                OString sLanguage = 
OUStringToOString(rArgs.maLanguageTag.getBcp47(), RTL_TEXTENCODING_ASCII_US);
+                hb_buffer_set_language(pHbBuffer, 
hb_language_from_string(sLanguage.getStr(), -1));
+            }
             hb_buffer_set_flags(pHbBuffer, 
static_cast<hb_buffer_flags_t>(nHbFlags));
             hb_buffer_add_utf16(
                 pHbBuffer, reinterpret_cast<uint16_t const *>(pStr), nLength,

Reply via email to