[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