summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Stahl <mstahl@redhat.com>2013-07-03 15:58:31 +0200
committerMichael Meeks <michael.meeks@suse.com>2013-07-10 08:59:36 +0000
commiteacf99268af767dd045754e42b24fe99964e8a52 (patch)
tree92dc5d69ec1d4db51313a036d3c36782d1112c78
parent4015660122e766bf20b6383dce022c6636bc1cca (diff)
fdo#65932: 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. Also it appears to cause crashes now. (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> (cherry picked from commit 076bc3ce70b9254e00547de34a86dafd76ed1e51) Change-Id: I601bdb0dc0aff5f4ddb8b8f4ba4c8d1f72c76666 Signed-off-by: Michael Stahl <mstahl@redhat.com> Reviewed-on: https://gerrit.libreoffice.org/4768 Reviewed-by: Fridrich Strba <fridrich@documentfoundation.org> Reviewed-by: Petr Mladek <pmladek@suse.cz> Tested-by: Petr Mladek <pmladek@suse.cz> Reviewed-by: Michael Meeks <michael.meeks@suse.com> Tested-by: Michael Meeks <michael.meeks@suse.com>
-rw-r--r--sw/inc/doc.hxx4
-rw-r--r--sw/source/core/doc/doclay.cxx5
-rw-r--r--sw/source/core/doc/docnew.cxx1
-rw-r--r--sw/source/core/view/vnew.cxx11
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