summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2016-01-12 14:44:42 +0100
committerStephan Bergmann <sbergman@redhat.com>2016-01-12 14:44:42 +0100
commit548c43238d02b34cf73e7c2ca1a912ee4fe82544 (patch)
treed049fa84ccc44e949f86c71f9e31a997719813cd
parent791ad3e170bcb5a2daedac77932dc9822f7f1092 (diff)
Mark some classes as final
...namely exactly those for which fa91dd31f39a24329d288d4e1cda28db3a16af0d "5th step to remove tools/rtti.hxx" (which is assumed the culprit in tdf#96067 "Crash on undo row inserts") had replaced exact-type checks of the form v->Type() == TYPE(X) with type-or-subtype-of checks of the form dynamic_cast<X *>(v) != nullptr which is only sound if X is a final class. (Except for one case already handled differently in 791ad3e170bcb5a2daedac77932dc9822f7f1092 "Stick to exact-type check.") Change-Id: Ia822c55c7c0e982d42c6a97589307e577721e324
-rw-r--r--include/editeng/flditem.hxx18
-rw-r--r--include/svl/poolitem.hxx2
-rw-r--r--sc/source/ui/inc/docsh.hxx2
3 files changed, 11 insertions, 11 deletions
diff --git a/include/editeng/flditem.hxx b/include/editeng/flditem.hxx
index 2dcaa0631043..bef62976fa39 100644
--- a/include/editeng/flditem.hxx
+++ b/include/editeng/flditem.hxx
@@ -177,7 +177,7 @@ public:
virtual MetaAction* createBeginComment() const override;
};
-class EDITENG_DLLPUBLIC SvxPageField : public SvxFieldData
+class EDITENG_DLLPUBLIC SvxPageField final: public SvxFieldData
{
public:
SV_DECL_PERSIST1( SvxPageField, SvxFieldData, css::text::textfield::Type::PAGE )
@@ -189,7 +189,7 @@ public:
virtual MetaAction* createBeginComment() const override;
};
-class EDITENG_DLLPUBLIC SvxPageTitleField : public SvxFieldData
+class EDITENG_DLLPUBLIC SvxPageTitleField final: public SvxFieldData
{
public:
SV_DECL_PERSIST1( SvxPageTitleField, SvxFieldData, css::text::textfield::Type::PAGE_NAME )
@@ -201,7 +201,7 @@ public:
virtual MetaAction* createBeginComment() const override;
};
-class EDITENG_DLLPUBLIC SvxPagesField : public SvxFieldData
+class EDITENG_DLLPUBLIC SvxPagesField final: public SvxFieldData
{
public:
SV_DECL_PERSIST1( SvxPagesField, SvxFieldData, css::text::textfield::Type::PAGES )
@@ -211,7 +211,7 @@ public:
virtual bool operator==( const SvxFieldData& ) const override;
};
-class EDITENG_DLLPUBLIC SvxTimeField : public SvxFieldData
+class EDITENG_DLLPUBLIC SvxTimeField final: public SvxFieldData
{
public:
SV_DECL_PERSIST1( SvxTimeField, SvxFieldData, css::text::textfield::Type::TIME )
@@ -223,7 +223,7 @@ public:
virtual MetaAction* createBeginComment() const override;
};
-class EDITENG_DLLPUBLIC SvxFileField : public SvxFieldData
+class EDITENG_DLLPUBLIC SvxFileField final: public SvxFieldData
{
public:
SV_DECL_PERSIST1( SvxFileField, SvxFieldData, css::text::textfield::Type::DOCINFO_TITLE )
@@ -233,7 +233,7 @@ public:
virtual bool operator==( const SvxFieldData& ) const override;
};
-class EDITENG_DLLPUBLIC SvxTableField : public SvxFieldData
+class EDITENG_DLLPUBLIC SvxTableField final: public SvxFieldData
{
int mnTab;
public:
@@ -378,7 +378,7 @@ public:
/** this field is used as a placeholder for a header&footer in impress. The actual
value is stored at the page */
-class EDITENG_DLLPUBLIC SvxHeaderField : public SvxFieldData
+class EDITENG_DLLPUBLIC SvxHeaderField final: public SvxFieldData
{
public:
SV_DECL_PERSIST1( SvxHeaderField, SvxFieldData, css::text::textfield::Type::PRESENTATION_HEADER )
@@ -390,7 +390,7 @@ public:
/** this field is used as a placeholder for a header&footer in impress. The actual
value is stored at the page */
-class EDITENG_DLLPUBLIC SvxFooterField : public SvxFieldData
+class EDITENG_DLLPUBLIC SvxFooterField final: public SvxFieldData
{
public:
SV_DECL_PERSIST1( SvxFooterField, SvxFieldData, css::text::textfield::Type::PRESENTATION_FOOTER )
@@ -401,7 +401,7 @@ public:
/** this field is used as a placeholder for a header&footer in impress. The actual
value is stored at the page */
-class EDITENG_DLLPUBLIC SvxDateTimeField : public SvxFieldData
+class EDITENG_DLLPUBLIC SvxDateTimeField final: public SvxFieldData
{
public:
SV_DECL_PERSIST1( SvxDateTimeField, SvxFieldData, css::text::textfield::Type::PRESENTATION_DATE_TIME )
diff --git a/include/svl/poolitem.hxx b/include/svl/poolitem.hxx
index 6f143bb88f88..0ae6bea2c512 100644
--- a/include/svl/poolitem.hxx
+++ b/include/svl/poolitem.hxx
@@ -247,7 +247,7 @@ inline bool IsInvalidItem(const SfxPoolItem *pItem)
return pItem == reinterpret_cast<SfxPoolItem *>(-1);
}
-class SVL_DLLPUBLIC SfxVoidItem: public SfxPoolItem
+class SVL_DLLPUBLIC SfxVoidItem final: public SfxPoolItem
{
SfxVoidItem & operator=( const SfxVoidItem& ) = delete;
public:
diff --git a/sc/source/ui/inc/docsh.hxx b/sc/source/ui/inc/docsh.hxx
index 93c5b4c1540b..82b0f4988481 100644
--- a/sc/source/ui/inc/docsh.hxx
+++ b/sc/source/ui/inc/docsh.hxx
@@ -80,7 +80,7 @@ typedef std::unordered_map< sal_uLong, sal_uLong > ScChangeActionMergeMap;
#define SC_PF_TESTMERGE 2
#define SC_PF_WHOLEROWS 4
-class SC_DLLPUBLIC ScDocShell: public SfxObjectShell, public SfxListener
+class SC_DLLPUBLIC ScDocShell final: public SfxObjectShell, public SfxListener
{
ScDocument aDocument;