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

Noel Grandin (via logerrit) logerrit at kemper.freedesktop.org
Thu Mar 28 06:42:51 UTC 2019


 sfx2/source/dialog/splitwin.cxx    |   10 ++++++++--
 sw/source/core/access/acctable.cxx |    2 +-
 2 files changed, 9 insertions(+), 3 deletions(-)

New commits:
commit 9c5d33e3c9e4a680af61a9e7af8fa73d08b33834
Author:     Noel Grandin <noel.grandin at collabora.co.uk>
AuthorDate: Wed Mar 27 15:57:40 2019 +0200
Commit:     Noel Grandin <noel.grandin at collabora.co.uk>
CommitDate: Thu Mar 28 07:42:19 2019 +0100

    tdf#113539 Slow opening of ODT file containing a large table
    
    I suspect that somebody has already fixed the bulk of this, since on my
    machine, the opening time started as:
        0m5.363s
    
    After changing from std::set to o3tl::sorted_set in
    SwAccessibleTableData_Impl, it dropped to:
        0m4.372s
    
    And then tweaking SfxSplitWindow::InsertWindow_Imp lowered it to:
        0m4.030s
    
    which seems perfectly acceptable to me.
    
    Change-Id: I0c6123e99ab560742bd3dc97bb76666b48a3b1b6
    Reviewed-on: https://gerrit.libreoffice.org/69862
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>

diff --git a/sfx2/source/dialog/splitwin.cxx b/sfx2/source/dialog/splitwin.cxx
index d9a50f003bbd..065ca5afde1a 100644
--- a/sfx2/source/dialog/splitwin.cxx
+++ b/sfx2/source/dialog/splitwin.cxx
@@ -698,9 +698,12 @@ void SfxSplitWindow::InsertWindow_Impl( SfxDock_Impl const * pDock,
             pEmptyWin->Actualize();
             SAL_INFO("sfx", "SfxSplitWindow::InsertWindow_Impl - registering empty Splitwindow" );
             pWorkWin->RegisterChild_Impl( *GetSplitWindow(), eAlign )->nVisible = SfxChildVisibility::VISIBLE;
-            pWorkWin->ArrangeChildren_Impl();
+            // tdf#113539 FadeIn will call ArrangeChildren_Impl() for us, and avoiding extra calls to that
+            // can make a different to load times because it avoids extra accessibility calcs
             if ( bFadeIn )
                 FadeIn();
+            else
+                pWorkWin->ArrangeChildren_Impl();
         }
         else
         {
@@ -716,9 +719,12 @@ void SfxSplitWindow::InsertWindow_Impl( SfxDock_Impl const * pDock,
                 SAL_INFO("sfx", "SfxSplitWindow::InsertWindow_Impl - registering real Splitwindow" );
             }
             pWorkWin->RegisterChild_Impl( *GetSplitWindow(), eAlign )->nVisible = SfxChildVisibility::VISIBLE;
-            pWorkWin->ArrangeChildren_Impl();
+            // tdf#113539 FadeIn will call ArrangeChildren_Impl() for us, and avoiding extra calls to that
+            // can make a different to load times because it avoids extra accessibility calcs
             if ( bFadeIn )
                 FadeIn();
+            else
+                pWorkWin->ArrangeChildren_Impl();
         }
 
         pWorkWin->ShowChildren_Impl();
diff --git a/sw/source/core/access/acctable.cxx b/sw/source/core/access/acctable.cxx
index 9df77fac8b9e..ef0bff3133b1 100644
--- a/sw/source/core/access/acctable.cxx
+++ b/sw/source/core/access/acctable.cxx
@@ -58,7 +58,7 @@ using namespace ::com::sun::star;
 using namespace ::com::sun::star::accessibility;
 using namespace ::sw::access;
 
-typedef std::set < sal_Int32 > Int32Set_Impl;
+typedef o3tl::sorted_vector< sal_Int32 > Int32Set_Impl;
 typedef std::pair < sal_Int32, sal_Int32 > Int32Pair_Impl;
 
 const unsigned int SELECTION_WITH_NUM = 10;


More information about the Libreoffice-commits mailing list