[Libreoffice-commits] core.git: include/editeng include/svl sc/source

Stephan Bergmann sbergman at redhat.com
Tue Jan 12 05:50:41 PST 2016


 include/editeng/flditem.hxx |   18 +++++++++---------
 include/svl/poolitem.hxx    |    2 +-
 sc/source/ui/inc/docsh.hxx  |    2 +-
 3 files changed, 11 insertions(+), 11 deletions(-)

New commits:
commit 548c43238d02b34cf73e7c2ca1a912ee4fe82544
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Tue Jan 12 14:44:42 2016 +0100

    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

diff --git a/include/editeng/flditem.hxx b/include/editeng/flditem.hxx
index 2dcaa06..bef6297 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 6f143bb..0ae6bea 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 93c5b4c..82b0f49 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;
 


More information about the Libreoffice-commits mailing list