sfx2/source/appl/childwin.cxx |   11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

New commits:
commit 33584bc189235b2e0f263cade9f9d759d29448c9
Author:     Noel Grandin <n...@peralex.com>
AuthorDate: Thu Sep 23 13:55:31 2021 +0200
Commit:     Noel Grandin <noel.gran...@collabora.co.uk>
CommitDate: Thu Sep 23 14:57:04 2021 +0200

    tdf#144132 Crash when insert formula object in Writer
    
    regression from
        commit ec01d43e0a8fa560d7cd8c76c0d609b18a60cddb
        Date:   Wed Jul 21 14:24:28 2021 +0200
        pass SfxChildWinFactory around by value
    
    Change-Id: I88bc6c8bfd35d0a653512b064c9ee0d59b1e8b38
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122520
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk>

diff --git a/sfx2/source/appl/childwin.cxx b/sfx2/source/appl/childwin.cxx
index b00f70a3afb3..51f58a4193c0 100644
--- a/sfx2/source/appl/childwin.cxx
+++ b/sfx2/source/appl/childwin.cxx
@@ -51,7 +51,7 @@ struct SfxChildWindow_Impl
 {
     css::uno::Reference< css::frame::XFrame >             xFrame;
     css::uno::Reference< css::lang::XEventListener >      xListener;
-    SfxChildWinFactory* pFact;
+    SfxChildWinFactory aFact = { nullptr, 0, 0 };
     bool                bHideNotDelete;
     bool                bVisible;
     bool                bWantsFocus;
@@ -147,7 +147,6 @@ SfxChildWindow::SfxChildWindow(vcl::Window *pParentWindow, 
sal_uInt16 nId)
     , eChildAlignment(SfxChildAlignment::NOALIGNMENT)
     , nType(nId)
 {
-    pImpl->pFact = nullptr;
     pImpl->bHideNotDelete = false;
     pImpl->bWantsFocus = true;
     pImpl->bVisible = true;
@@ -291,7 +290,7 @@ void SfxChildWindow::SaveStatus(const SfxChildWinInfo& 
rInfo)
     aWinOpt.SetUserData( aSeq );
 
     // ... but save status at runtime!
-    pImpl->pFact->aInfo = rInfo;
+    pImpl->aFact.aInfo = rInfo;
 }
 
 void SfxChildWindow::SetAlignment(SfxChildAlignment eAlign)
@@ -301,7 +300,7 @@ void SfxChildWindow::SetAlignment(SfxChildAlignment eAlign)
 
 SfxChildWinInfo SfxChildWindow::GetInfo() const
 {
-    SfxChildWinInfo aInfo(pImpl->pFact->aInfo);
+    SfxChildWinInfo aInfo(pImpl->aFact.aInfo);
     if (xController)
     {
         weld::Dialog* pDialog = xController->getDialog();
@@ -343,7 +342,7 @@ SfxChildWinInfo SfxChildWindow::GetInfo() const
 
 sal_uInt16 SfxChildWindow::GetPosition() const
 {
-    return pImpl->pFact->nPos;
+    return pImpl->aFact.nPos;
 }
 
 void SfxChildWindow::InitializeChildWinFactory_Impl(sal_uInt16 nId, 
SfxChildWinInfo& rInfo)
@@ -423,7 +422,7 @@ bool ParentIsFloatingWindow(const vcl::Window *pParent)
 
 void SfxChildWindow::SetFactory_Impl( SfxChildWinFactory *pF )
 {
-    pImpl->pFact = pF;
+    pImpl->aFact = *pF;
 }
 
 void SfxChildWindow::SetHideNotDelete( bool bOn )

Reply via email to