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

Stephan Bergmann sbergman at redhat.com
Mon Oct 5 05:14:29 PDT 2015


 sc/source/ui/Accessibility/AccessibleDocument.cxx |    6 +++++-
 sc/source/ui/inc/AccessibleDocument.hxx           |    2 ++
 sc/source/ui/view/gridwin5.cxx                    |    1 +
 3 files changed, 8 insertions(+), 1 deletion(-)

New commits:
commit 8a334eb222906909bf77006687411ff9e03d9da3
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Mon Oct 5 14:09:56 2015 +0200

    tdf#94687: Keep original ordering of overall initialization steps
    
    ...between ScGridWindow::CreateAccessible, ScAccessibleDocument ctor, and
    ScAccessibleDocument::Init, by introducing ScAccessibleDocument::PreInit into
    which the this-using parts of the ScAccessibleDocument ctor are offloaded now.
    
    This is a follow-up to 6f1e77fc600f776433a759172323b4afec3d811e, "rhbz#1264753:
    Avoid this being release()ed to 0 in ScAccessibleDocument ctor;" turns out my
    fears that the slight re-ordering of initialization code coulb break something
    were well-founded after all.
    
    Change-Id: Ibf62983030d7abbe4b1ead9ee5add5f9627e7d60

diff --git a/sc/source/ui/Accessibility/AccessibleDocument.cxx b/sc/source/ui/Accessibility/AccessibleDocument.cxx
index 0022e9d..4a199a9 100644
--- a/sc/source/ui/Accessibility/AccessibleDocument.cxx
+++ b/sc/source/ui/Accessibility/AccessibleDocument.cxx
@@ -1415,7 +1415,7 @@ ScAccessibleDocument::ScAccessibleDocument(
     maVisArea = GetVisibleArea_Impl();
 }
 
-void ScAccessibleDocument::Init()
+void ScAccessibleDocument::PreInit()
 {
     if (mpViewShell)
     {
@@ -1442,6 +1442,10 @@ void ScAccessibleDocument::Init()
             AddChild(xAcc, false);
         }
     }
+}
+
+void ScAccessibleDocument::Init()
+{
     if(!mpChildrenShapes)
         mpChildrenShapes = new ScChildrenShapes(this, mpViewShell, meSplitPos);
 }
diff --git a/sc/source/ui/inc/AccessibleDocument.hxx b/sc/source/ui/inc/AccessibleDocument.hxx
index ff153b0..6e45caf 100644
--- a/sc/source/ui/inc/AccessibleDocument.hxx
+++ b/sc/source/ui/inc/AccessibleDocument.hxx
@@ -63,6 +63,8 @@ public:
         ScTabViewShell* pViewShell,
         ScSplitPos eSplitPos);
 
+    void PreInit();
+
     virtual void Init() SAL_OVERRIDE;
 
     DECL_LINK_TYPED( WindowChildEventListener, VclWindowEvent&, void );
diff --git a/sc/source/ui/view/gridwin5.cxx b/sc/source/ui/view/gridwin5.cxx
index f7a8337..e7678b7 100644
--- a/sc/source/ui/view/gridwin5.cxx
+++ b/sc/source/ui/view/gridwin5.cxx
@@ -462,6 +462,7 @@ com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >
     ScAccessibleDocument* pAccessibleDocument =
         new ScAccessibleDocument(GetAccessibleParentWindow()->GetAccessible(),
             pViewData->GetViewShell(), eWhich);
+    pAccessibleDocument->PreInit();
 
     xAcc = pAccessibleDocument;
     SetAccessible(xAcc);


More information about the Libreoffice-commits mailing list