diff options
author | Michael Stahl <mstahl@redhat.com> | 2013-07-03 15:58:31 +0200 |
---|---|---|
committer | Miklos Vajna <vmiklos@suse.cz> | 2013-07-03 15:41:13 +0000 |
commit | 076bc3ce70b9254e00547de34a86dafd76ed1e51 (patch) | |
tree | 6f8b4f00e84bd29fcb0c6b8b18f8a1bb0a693e2a | |
parent | fa4cb4c3235d3fcedd68d0e876de663b33c09688 (diff) |
sw: remove SwDoc::ShareLayout
It is a crude hack that is no longer necessary because the underlying
problems that caused crashes when deleting the layout have been fixed.
Change-Id: I601bdb0dc0aff5f4ddb8b8f4ba4c8d1f72c76666
(cherry picked from commit f8dfa3a81a5382b2f18a705bd512625754167573)
Reviewed-on: https://gerrit.libreoffice.org/4706
Reviewed-by: Miklos Vajna <vmiklos@suse.cz>
Tested-by: Miklos Vajna <vmiklos@suse.cz>
-rw-r--r-- | sw/inc/doc.hxx | 4 | ||||
-rw-r--r-- | sw/source/core/doc/doclay.cxx | 5 | ||||
-rw-r--r-- | sw/source/core/doc/docnew.cxx | 1 | ||||
-rw-r--r-- | sw/source/core/view/vnew.cxx | 11 |
4 files changed, 0 insertions, 21 deletions
diff --git a/sw/inc/doc.hxx b/sw/inc/doc.hxx index 13256ea71e2c..0769ae2368f9 100644 --- a/sw/inc/doc.hxx +++ b/sw/inc/doc.hxx @@ -79,7 +79,6 @@ class SwList; #include <memory> #include <boost/scoped_ptr.hpp> -#include <boost/shared_ptr.hpp> #include <boost/ptr_container/ptr_vector.hpp> namespace editeng { class SvxBorderLine; } @@ -317,7 +316,6 @@ class SW_DLLPUBLIC SwDoc : SwDefTOXBase_Impl * mpDefTOXBases; ///< defaults of SwTOXBase's ViewShell *mpCurrentView; ///< SwDoc should get a new member mpCurrentView//swmod 071225 - boost::shared_ptr<SwRootFrm> mpLayoutPtr; SdrModel *mpDrawModel; ///< StarView Drawing SwDocUpdtFld *mpUpdtFlds; ///< Struct for updating fields @@ -1772,8 +1770,6 @@ public: const SwDocShell* GetDocShell() const { return mpDocShell; } void SetDocShell( SwDocShell* pDSh ); - void ShareLayout( boost::shared_ptr<SwRootFrm>& rPtr); - /** in case during copying of embedded object a new shell is created, it should be set here and cleaned later */ void SetTmpDocShell( SfxObjectShellLock rLock ) { mxTmpDocShell = rLock; } diff --git a/sw/source/core/doc/doclay.cxx b/sw/source/core/doc/doclay.cxx index b320e79779e3..926a8c701f2f 100644 --- a/sw/source/core/doc/doclay.cxx +++ b/sw/source/core/doc/doclay.cxx @@ -2303,9 +2303,4 @@ std::set<SwRootFrm*> SwDoc::GetAllLayouts() return aAllLayouts; } //swmod 070825 -void SwDoc::ShareLayout(boost::shared_ptr<SwRootFrm>& rPtr) -{ - mpLayoutPtr = rPtr; -} - /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sw/source/core/doc/docnew.cxx b/sw/source/core/doc/docnew.cxx index 94ebfeade346..91aa23b2ad9e 100644 --- a/sw/source/core/doc/docnew.cxx +++ b/sw/source/core/doc/docnew.cxx @@ -520,7 +520,6 @@ SwDoc::~SwDoc() delete mpPgPViewPrtData; mbDtor = true; - mpLayoutPtr.reset(); delete mpRedlineTbl; delete mpUnoCrsrTbl; diff --git a/sw/source/core/view/vnew.cxx b/sw/source/core/view/vnew.cxx index a8b293e2a6a3..2c3053aa3203 100644 --- a/sw/source/core/view/vnew.cxx +++ b/sw/source/core/view/vnew.cxx @@ -128,17 +128,6 @@ void ViewShell::Init( const SwViewOption *pNewOpt ) // switched to two step construction because creating the layout in SwRootFrm needs a valid pLayout set mpLayout = SwRootFrmPtr(new SwRootFrm( mpDoc->GetDfltFrmFmt(), this )); mpLayout->Init( mpDoc->GetDfltFrmFmt() ); - - // mba: the layout refactoring overlooked an important detail - // prior to that change, the layout always was destroyed in the dtor of swdoc - // it is necessary to suppress notifications in the layout when the layout is discarded in its dtor - // unfortunately this was done by asking whether the doc is in dtor - though the correct question should - // have been if the rootfrm is in dtor (or even better: discard the layout before the SwRootFrm is destroyed!) - // SwDoc::IsInDtor() is used at several places all over the code that need to be checked whether - // "pDoc->IsInDtor()" means what is says or in fact should check for "pRootFrm->IsInDtor()". As this will take some time, I decided - // to postpone that investigations and the changes it will bring to the 3.5 release and for 3.4 make sure - // that the layout still gets destroyed in the doc dtor. This is done by sharing "the" layout (that we still have) with the doc. - GetDoc()->ShareLayout( mpLayout ); } } SizeChgNotify(); //swmod 071108 |