[Libreoffice-commits] core.git: sw/source

Miklos Vajna vmiklos at collabora.co.uk
Tue May 2 07:22:29 UTC 2017


 sw/source/core/text/porfld.cxx |    2 ++
 sw/source/core/text/porlay.cxx |   10 ++++++++++
 2 files changed, 12 insertions(+)

New commits:
commit 1b9d9a8bb640b7883c143cb39e3024be86528977
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date:   Tue May 2 09:21:51 2017 +0200

    Revert "tdf#107204: Make sure we always do Unicode Bidi"
    
    This reverts commit e3b7ef45d4364fda15691b5748a9a88bc908afc6, as it
    breaks the testTableKeep part of CppunitTest_sw_ww8export on the
    Jenkins_Callgrind tinderbox (and also for me locally) and there is no
    fix in progress to address that.
    
    See the bug for a comparision of the old/new layout for the problematic
    testcase.
    
    Khaled says it's OK to push this revert till it's clear how to fix the
    bug without side-effects.
    
    Change-Id: I669de98ffa8b519024e332ae468808d7e7243df2

diff --git a/sw/source/core/text/porfld.cxx b/sw/source/core/text/porfld.cxx
index 955aaa52f2f5..3821625a238e 100644
--- a/sw/source/core/text/porfld.cxx
+++ b/sw/source/core/text/porfld.cxx
@@ -228,6 +228,8 @@ void SwFieldPortion::CheckScript( const SwTextSizeInfo &rInf )
                              rSI.GetDefaultDir() :
                              rSI.DirType( IsFollow() ? rInf.GetIdx() - 1 : rInf.GetIdx() );
 
+        bool bPerformUBA = UBIDI_LTR != nFieldDir || i18n::ScriptType::COMPLEX == nScript;
+        if (bPerformUBA)
         {
             UErrorCode nError = U_ZERO_ERROR;
             UBiDi* pBidi = ubidi_openSized( aText.getLength(), 0, &nError );
diff --git a/sw/source/core/text/porlay.cxx b/sw/source/core/text/porlay.cxx
index 97c11ba5ecb7..2b3fcecc436d 100644
--- a/sw/source/core/text/porlay.cxx
+++ b/sw/source/core/text/porlay.cxx
@@ -1184,6 +1184,16 @@ void SwScriptInfo::InitScriptInfo( const SwTextNode& rNode, bool bRTL )
     aDirectionChanges.clear();
 
     // Perform Unicode Bidi Algorithm for text direction information
+    bool bPerformUBA = UBIDI_LTR != nDefaultDir;
+    nCnt = 0;
+    while( !bPerformUBA && nCnt < CountScriptChg() )
+    {
+        if ( i18n::ScriptType::COMPLEX == GetScriptType( nCnt++ ) )
+            bPerformUBA = true;
+    }
+
+    // do not call the unicode bidi algorithm if not required
+    if ( bPerformUBA )
     {
         UpdateBidiInfo( rText );
 


More information about the Libreoffice-commits mailing list