compilerplugins/clang/finalclasses.py | 18 ++++++++++++++++++ include/linguistic/lngprophelp.hxx | 14 ++++++-------- include/svx/polygn3d.hxx | 3 +-- include/svx/rulritem.hxx | 4 ++-- include/svx/sdr/table/tablecontroller.hxx | 4 ++-- include/vcl/threadex.hxx | 2 +- include/vcl/toolkit/fixedhyper.hxx | 3 +-- include/vcl/toolkit/spin.hxx | 2 +- sc/inc/refhint.hxx | 2 +- vcl/inc/iconview.hxx | 2 +- vcl/inc/opengl/x11/cairotextrender.hxx | 2 +- vcl/inc/skia/salbmp.hxx | 2 +- vcl/inc/skia/x11/cairotextrender.hxx | 2 +- vcl/inc/skia/x11/gdiimpl.hxx | 5 +++-- vcl/inc/svimpbox.hxx | 2 +- 15 files changed, 41 insertions(+), 26 deletions(-)
New commits: commit 36b90e6c23fc846c9a8b4ddbd74688b2b5cc4705 Author: Noel Grandin <noel.gran...@collabora.co.uk> AuthorDate: Wed Dec 11 12:11:44 2019 +0200 Commit: Noel Grandin <noel.gran...@collabora.co.uk> CommitDate: Thu Dec 12 13:11:16 2019 +0100 loplugin:finalclasses Change-Id: Ia9865271cf0a75ebf4b885ff376f7d0a152b2555 Reviewed-on: https://gerrit.libreoffice.org/84925 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk> diff --git a/compilerplugins/clang/finalclasses.py b/compilerplugins/clang/finalclasses.py index f6c15ca2c87d..ea027f9a48b4 100755 --- a/compilerplugins/clang/finalclasses.py +++ b/compilerplugins/clang/finalclasses.py @@ -40,6 +40,24 @@ for clazz in sorted(definitionSet - inheritFromSet): # ignore test and external code if ("/qa/" in file): continue if (file.startswith("workdir/")): continue + # We are only realling interested in classes that are shared between linkage units, where the compiler + # is not able to figure out for itself that classes are final. + if not(file.startswith("include/") or file.startswith("sw/inc/") or file.startswith("sc/inc/") or file.startswith("vcl/inc/")): continue + # Exclude URE + if file.startswith("include/com/"): continue + if file.startswith("include/cppu/"): continue + if file.startswith("include/cppuhelper/"): continue + if file.startswith("include/osl/"): continue + if file.startswith("include/rtl/"): continue + if file.startswith("include/sal/"): continue + if file.startswith("include/salhelper/"): continue + if file.startswith("include/systools/"): continue + if file.startswith("include/typelib/"): continue + if file.startswith("include/uno/"): continue + # some kind of template noise + if file.startswith("include/unotest/"): continue + # no point optimising test code + if file.startswith("include/test/"): continue tmpset.add((clazz, file)) # sort the results using a "natural order" so sequences like [item1,item2,item10] sort nicely diff --git a/include/linguistic/lngprophelp.hxx b/include/linguistic/lngprophelp.hxx index f05481019704..19cbe1f969ac 100644 --- a/include/linguistic/lngprophelp.hxx +++ b/include/linguistic/lngprophelp.hxx @@ -57,7 +57,7 @@ typedef cppu::WeakImplHelper css::linguistic2::XLinguServiceEventBroadcaster > PropertyChgHelperBase; -class PropertyChgHelper : +class LNG_DLLPUBLIC PropertyChgHelper : public PropertyChgHelperBase { css::uno::Sequence< OUString > aPropNames; @@ -118,8 +118,8 @@ public: const css::uno::Reference< css::linguistic2::XLinguServiceEventListener >& rxListener ) override; // non-UNO functions - void LNG_DLLPUBLIC AddAsPropListener(); - void LNG_DLLPUBLIC RemoveAsPropListener(); + void AddAsPropListener(); + void RemoveAsPropListener(); void LaunchEvent( const css::linguistic2::LinguServiceEvent& rEvt ); const css::uno::Sequence< OUString > & @@ -131,7 +131,7 @@ public: }; -class PropertyHelper_Thes : +class PropertyHelper_Thes final : public PropertyChgHelper { PropertyHelper_Thes( const PropertyHelper_Thes & ) = delete; @@ -167,7 +167,7 @@ public: }; -class LNG_DLLPUBLIC PropertyHelper_Spell : +class LNG_DLLPUBLIC PropertyHelper_Spell final : public PropertyChgHelper { // default values @@ -183,7 +183,6 @@ class LNG_DLLPUBLIC PropertyHelper_Spell : PropertyHelper_Spell( const PropertyHelper_Spell & ) = delete; PropertyHelper_Spell & operator = ( const PropertyHelper_Spell & ) = delete; -protected: // PropertyChgHelper virtual void SetDefaultValues() override; virtual void GetCurrentValues() override; @@ -237,7 +236,7 @@ public: }; -class PropertyHelper_Hyphen : +class PropertyHelper_Hyphen final : public PropertyChgHelper { // default values @@ -255,7 +254,6 @@ class PropertyHelper_Hyphen : PropertyHelper_Hyphen( const PropertyHelper_Hyphen & ) = delete; PropertyHelper_Hyphen & operator = ( const PropertyHelper_Hyphen & ) = delete; -protected: // PropertyChgHelper virtual void SetDefaultValues() override; virtual void GetCurrentValues() override; diff --git a/include/svx/polygn3d.hxx b/include/svx/polygn3d.hxx index f01bd18a692e..8dc2a124afb4 100644 --- a/include/svx/polygn3d.hxx +++ b/include/svx/polygn3d.hxx @@ -23,7 +23,7 @@ #include <svx/obj3d.hxx> #include <svx/svxdllapi.h> -class SVX_DLLPUBLIC E3dPolygonObj : public E3dCompoundObject +class SVX_DLLPUBLIC E3dPolygonObj final : public E3dCompoundObject { // parameters basegfx::B3DPolyPolygon aPolyPoly3D; @@ -34,7 +34,6 @@ class SVX_DLLPUBLIC E3dPolygonObj : public E3dCompoundObject SVX_DLLPRIVATE void CreateDefaultNormals(); SVX_DLLPRIVATE void CreateDefaultTexture(); -protected: virtual std::unique_ptr<sdr::contact::ViewContact> CreateObjectSpecificViewContact() override; // protected destructor diff --git a/include/svx/rulritem.hxx b/include/svx/rulritem.hxx index 25e1ce88be92..7b7a33b8e8fc 100644 --- a/include/svx/rulritem.hxx +++ b/include/svx/rulritem.hxx @@ -82,12 +82,12 @@ public: void SetLower(long lArgRight); }; -class SVX_DLLPUBLIC SvxPagePosSizeItem : public SfxPoolItem +class SVX_DLLPUBLIC SvxPagePosSizeItem final : public SfxPoolItem { Point aPos; long lWidth; long lHeight; -protected: + virtual bool operator==( const SfxPoolItem& ) const override; virtual bool QueryValue( css::uno::Any& rVal, sal_uInt8 nMemberId = 0 ) const override; virtual bool PutValue( const css::uno::Any& rVal, sal_uInt8 nMemberId ) override; diff --git a/include/svx/sdr/table/tablecontroller.hxx b/include/svx/sdr/table/tablecontroller.hxx index 8359a15c4dbe..3570cff6f56d 100644 --- a/include/svx/sdr/table/tablecontroller.hxx +++ b/include/svx/sdr/table/tablecontroller.hxx @@ -39,7 +39,7 @@ namespace sdr { namespace table { class TableModel; -class SVX_DLLPUBLIC SvxTableController : public sdr::SelectionController +class SVX_DLLPUBLIC SvxTableController final : public sdr::SelectionController { public: SVX_DLLPRIVATE SvxTableController( @@ -59,7 +59,7 @@ public: SVX_DLLPRIVATE virtual void onSelectionHasChanged() override; SVX_DLLPRIVATE virtual void GetState( SfxItemSet& rSet ) override; - SVX_DLLPRIVATE virtual void Execute( SfxRequest& rReq ) override; + virtual void Execute( SfxRequest& rReq ) override; SVX_DLLPRIVATE virtual bool GetStyleSheet( SfxStyleSheet* &rpStyleSheet ) const override; SVX_DLLPRIVATE virtual bool SetStyleSheet( SfxStyleSheet* pStyleSheet, bool bDontRemoveHardAttr ) override; diff --git a/include/vcl/threadex.hxx b/include/vcl/threadex.hxx index ceb3354556a8..39c1633d2054 100644 --- a/include/vcl/threadex.hxx +++ b/include/vcl/threadex.hxx @@ -90,7 +90,7 @@ private: }; template <typename FuncT> -class GenericSolarThreadExecutor<FuncT, void> : public SolarThreadExecutor +class GenericSolarThreadExecutor<FuncT, void> final : public SolarThreadExecutor { public: static void exec( FuncT const& func ) diff --git a/include/vcl/toolkit/fixedhyper.hxx b/include/vcl/toolkit/fixedhyper.hxx index 9eb1af116e5e..15434485b06a 100644 --- a/include/vcl/toolkit/fixedhyper.hxx +++ b/include/vcl/toolkit/fixedhyper.hxx @@ -27,7 +27,7 @@ #include <vcl/dllapi.h> #include <vcl/fixed.hxx> -class VCL_DLLPUBLIC FixedHyperlink : public FixedText +class VCL_DLLPUBLIC FixedHyperlink final : public FixedText { private: long m_nTextLen; @@ -46,7 +46,6 @@ private: DECL_LINK(HandleClick, FixedHyperlink&, void); -protected: /** overwrites Window::MouseMove(). Changes the pointer only over the text. diff --git a/include/vcl/toolkit/spin.hxx b/include/vcl/toolkit/spin.hxx index 0483aef2e980..60f548e3b2b5 100644 --- a/include/vcl/toolkit/spin.hxx +++ b/include/vcl/toolkit/spin.hxx @@ -28,7 +28,7 @@ #include <vcl/ctrl.hxx> #include <vcl/timer.hxx> -class VCL_DLLPUBLIC SpinButton : public Control +class VCL_DLLPUBLIC SpinButton final : public Control { private: AutoTimer maRepeatTimer; diff --git a/sc/inc/refhint.hxx b/sc/inc/refhint.hxx index 7dec98a9e4a0..a312ec5b2842 100644 --- a/sc/inc/refhint.hxx +++ b/sc/inc/refhint.hxx @@ -69,7 +69,7 @@ public: SCROW getEndRow() const; }; -class RefRowReorderHint : public RefHint +class RefRowReorderHint final : public RefHint { const sc::ColRowReorderMapType& mrRowMap; SCTAB const mnTab; diff --git a/vcl/inc/iconview.hxx b/vcl/inc/iconview.hxx index 750f7ec6ebf0..ebc60f08aa23 100644 --- a/vcl/inc/iconview.hxx +++ b/vcl/inc/iconview.hxx @@ -22,7 +22,7 @@ #include <vcl/treelistbox.hxx> -class IconView : public SvTreeListBox +class IconView final : public SvTreeListBox { public: IconView( vcl::Window* pParent, WinBits nBits ); diff --git a/vcl/inc/opengl/x11/cairotextrender.hxx b/vcl/inc/opengl/x11/cairotextrender.hxx index c515b90da732..137022fa847b 100644 --- a/vcl/inc/opengl/x11/cairotextrender.hxx +++ b/vcl/inc/opengl/x11/cairotextrender.hxx @@ -12,7 +12,7 @@ #include <unx/x11/x11cairotextrender.hxx> -class OpenGLX11CairoTextRender : public X11CairoTextRender +class OpenGLX11CairoTextRender final : public X11CairoTextRender { public: explicit OpenGLX11CairoTextRender(X11SalGraphics& rParent); diff --git a/vcl/inc/skia/salbmp.hxx b/vcl/inc/skia/salbmp.hxx index 4e4aebf4f978..df3664f26f1c 100644 --- a/vcl/inc/skia/salbmp.hxx +++ b/vcl/inc/skia/salbmp.hxx @@ -24,7 +24,7 @@ #include <SkImage.h> -class VCL_PLUGIN_PUBLIC SkiaSalBitmap : public SalBitmap +class VCL_PLUGIN_PUBLIC SkiaSalBitmap final : public SalBitmap { public: SkiaSalBitmap(); diff --git a/vcl/inc/skia/x11/cairotextrender.hxx b/vcl/inc/skia/x11/cairotextrender.hxx index 766f94d484a1..947657a499cd 100644 --- a/vcl/inc/skia/x11/cairotextrender.hxx +++ b/vcl/inc/skia/x11/cairotextrender.hxx @@ -12,7 +12,7 @@ #include <unx/x11/x11cairotextrender.hxx> -class SkiaX11CairoTextRender : public X11CairoTextRender +class SkiaX11CairoTextRender final : public X11CairoTextRender { public: explicit SkiaX11CairoTextRender(X11SalGraphics& rParent); diff --git a/vcl/inc/skia/x11/gdiimpl.hxx b/vcl/inc/skia/x11/gdiimpl.hxx index 4d88740b8ba9..ad131f64c973 100644 --- a/vcl/inc/skia/x11/gdiimpl.hxx +++ b/vcl/inc/skia/x11/gdiimpl.hxx @@ -16,7 +16,8 @@ #include <unx/x11/x11gdiimpl.h> #include <skia/gdiimpl.hxx> -class VCL_PLUGIN_PUBLIC X11SkiaSalGraphicsImpl : public SkiaSalGraphicsImpl, public X11GraphicsImpl +class VCL_PLUGIN_PUBLIC X11SkiaSalGraphicsImpl final : public SkiaSalGraphicsImpl, + public X11GraphicsImpl { private: X11SalGraphics& mX11Parent; @@ -29,7 +30,7 @@ public: virtual void DeInit() override; virtual void freeResources() override; -protected: +private: virtual void createWindowContext() override; virtual void performFlush() override; virtual bool avoidRecreateByResize() const override; diff --git a/vcl/inc/svimpbox.hxx b/vcl/inc/svimpbox.hxx index e40bf234cddd..5a3ddf140b9e 100644 --- a/vcl/inc/svimpbox.hxx +++ b/vcl/inc/svimpbox.hxx @@ -44,7 +44,7 @@ namespace comphelper } } -class ImpLBSelEng : public FunctionSet +class ImpLBSelEng final : public FunctionSet { SvImpLBox* pImp; VclPtr<SvTreeListBox> pView; _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits