diff options
author | David Tardon <dtardon@redhat.com> | 2014-12-03 22:01:57 +0100 |
---|---|---|
committer | David Tardon <dtardon@redhat.com> | 2014-12-05 09:57:36 +0100 |
commit | d49e5761f359020c349c268ee78a4256cc46541e (patch) | |
tree | 51452df20c020095d9e7397f1066661f53c2e835 /basctl | |
parent | 8ddc963165bb52d7272ee1cca099f2ee8fed6759 (diff) |
ooo#93212 avoid slicing during construction of SdrPage
Also hide copy ctor and assignment operator of all derived classes, to
ensure that Clone() is the only method to make copies of them.
Change-Id: Icb3b50c63b086abe8c9add32e3041fe19692d20b
(cherry picked from commit 9638e6207c7fc48712b1b238177462c00f5011e8)
Diffstat (limited to 'basctl')
-rw-r--r-- | basctl/source/dlged/dlgedpage.cxx | 10 | ||||
-rw-r--r-- | basctl/source/inc/dlgedpage.hxx | 5 |
2 files changed, 14 insertions, 1 deletions
diff --git a/basctl/source/dlged/dlgedpage.cxx b/basctl/source/dlged/dlgedpage.cxx index 86a792f7ee69..15f7f1253869 100644 --- a/basctl/source/dlged/dlgedpage.cxx +++ b/basctl/source/dlged/dlgedpage.cxx @@ -33,6 +33,12 @@ DlgEdPage::DlgEdPage(DlgEdModel& rModel, bool bMasterPage) { } +DlgEdPage::DlgEdPage(const DlgEdPage& rSrcPage) + : SdrPage(rSrcPage) + , pDlgEdForm(0) +{ +} + DlgEdPage::~DlgEdPage() { Clear(); @@ -41,7 +47,9 @@ DlgEdPage::~DlgEdPage() SdrPage* DlgEdPage::Clone() const { - return new DlgEdPage( *this ); + DlgEdPage* const pNewPage = new DlgEdPage( *this ); + pNewPage->lateInit( *this ); + return pNewPage; } diff --git a/basctl/source/inc/dlgedpage.hxx b/basctl/source/inc/dlgedpage.hxx index b92760f68d7d..02752920769a 100644 --- a/basctl/source/inc/dlgedpage.hxx +++ b/basctl/source/inc/dlgedpage.hxx @@ -34,6 +34,8 @@ class DlgEdForm; class DlgEdPage : public SdrPage { + DlgEdPage& operator=(const DlgEdPage&) SAL_DELETED_FUNCTION; + private: DlgEdForm* pDlgEdForm; @@ -50,6 +52,9 @@ public: DlgEdForm* GetDlgEdForm() const { return pDlgEdForm; } virtual SdrObject* SetObjectOrdNum(size_t nOldObjNum, size_t nNewObjNum) SAL_OVERRIDE; + +protected: + DlgEdPage(const DlgEdPage& rSrcPage); }; } // namespace basctl |