From 6e67c03dc0225fc66343546b14e902b9d238b1a3 Mon Sep 17 00:00:00 2001 From: Stephan Bergmann Date: Wed, 14 Mar 2012 13:27:56 +0100 Subject: Enable -Wnon-virtual-dtor for GCC 4.6 ...which has the necessary features to support it. Change a lot of classes to either contain a protected non-virtual dtor (which is backwards compatible, so even works for cppumaker-generated UNO headers) or a public virtual one. cppuhelper/propertysetmixin.hxx still needs to disable the warning, as the relevant class has a non-virtual dtor but friends, which would still cause GCC to warn. Includes a patch for libcmis, intended to be upstreamed. --- connectivity/inc/connectivity/IParseContext.hxx | 3 +++ connectivity/inc/connectivity/SQLStatementHelper.hxx | 3 +++ connectivity/inc/connectivity/sdbcx/IRefreshable.hxx | 9 +++++++++ connectivity/inc/connectivity/sdbcx/VCollection.hxx | 1 + connectivity/inc/connectivity/virtualdbtools.hxx | 18 ++++++++++++++++++ connectivity/inc/connectivity/warningscontainer.hxx | 3 +++ 6 files changed, 37 insertions(+) (limited to 'connectivity/inc/connectivity') diff --git a/connectivity/inc/connectivity/IParseContext.hxx b/connectivity/inc/connectivity/IParseContext.hxx index 16bae3465820..1724b7310bbc 100644 --- a/connectivity/inc/connectivity/IParseContext.hxx +++ b/connectivity/inc/connectivity/IParseContext.hxx @@ -102,6 +102,9 @@ namespace connectivity

if this is not overridden by derived classes, it returns the static default locale.

*/ virtual ::com::sun::star::lang::Locale getPreferredLocale( ) const = 0; + + protected: + ~IParseContext() {} }; } diff --git a/connectivity/inc/connectivity/SQLStatementHelper.hxx b/connectivity/inc/connectivity/SQLStatementHelper.hxx index c64268debfd9..daf1ddc7308e 100644 --- a/connectivity/inc/connectivity/SQLStatementHelper.hxx +++ b/connectivity/inc/connectivity/SQLStatementHelper.hxx @@ -42,6 +42,9 @@ namespace dbtools { public: virtual void addComment(const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& descriptor,::rtl::OUStringBuffer& _rOut) = 0; + + protected: + ~ISQLStatementHelper() {} }; //......................................................................... diff --git a/connectivity/inc/connectivity/sdbcx/IRefreshable.hxx b/connectivity/inc/connectivity/sdbcx/IRefreshable.hxx index 769ed2107536..318f006d1216 100644 --- a/connectivity/inc/connectivity/sdbcx/IRefreshable.hxx +++ b/connectivity/inc/connectivity/sdbcx/IRefreshable.hxx @@ -39,18 +39,27 @@ namespace connectivity { public: virtual void refreshGroups() = 0; + + protected: + ~IRefreshableGroups() {} }; class OOO_DLLPUBLIC_DBTOOLS SAL_NO_VTABLE IRefreshableUsers { public: virtual void refreshUsers() = 0; + + protected: + ~IRefreshableUsers() {} }; class OOO_DLLPUBLIC_DBTOOLS SAL_NO_VTABLE IRefreshableColumns { public: virtual void refreshColumns() = 0; + + protected: + ~IRefreshableColumns() {} }; } } diff --git a/connectivity/inc/connectivity/sdbcx/VCollection.hxx b/connectivity/inc/connectivity/sdbcx/VCollection.hxx index c3262b450ca0..6db38b278464 100644 --- a/connectivity/inc/connectivity/sdbcx/VCollection.hxx +++ b/connectivity/inc/connectivity/sdbcx/VCollection.hxx @@ -73,6 +73,7 @@ namespace connectivity class OOO_DLLPUBLIC_DBTOOLS SAL_NO_VTABLE IObjectCollection { public: + virtual ~IObjectCollection(); virtual void reserve(size_t nLength) = 0; virtual bool exists(const ::rtl::OUString& _sName ) = 0; virtual bool empty() = 0; diff --git a/connectivity/inc/connectivity/virtualdbtools.hxx b/connectivity/inc/connectivity/virtualdbtools.hxx index fe023e2acfc9..cf42a52db14b 100644 --- a/connectivity/inc/connectivity/virtualdbtools.hxx +++ b/connectivity/inc/connectivity/virtualdbtools.hxx @@ -226,6 +226,9 @@ namespace connectivity const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& _rxComponent, ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection >& _rxActualConnection ) = 0; + + protected: + ~IDataAccessTools() {} }; //================================================================ @@ -244,6 +247,9 @@ namespace connectivity virtual sal_Int32 getSupportedTextEncodings( ::std::vector< rtl_TextEncoding >& /* [out] */ _rEncs ) const = 0; + + protected: + ~IDataAccessCharSet() {} }; //================================================================ @@ -272,6 +278,9 @@ namespace connectivity const ::com::sun::star::lang::Locale& _rLocale, const ::com::sun::star::util::Date& _rNullDate ) const = 0; + + protected: + ~IDataAccessTypeConversion() {} }; //================================================================ @@ -295,6 +304,9 @@ namespace connectivity const sal_Char _cDecSeparator, const IParseContext* _pContext ) const = 0; + + protected: + ~ISQLParseNode() {} }; //================================================================ @@ -313,6 +325,9 @@ namespace connectivity ) const = 0; virtual const IParseContext& getContext() const = 0; + + protected: + ~ISQLParser() {} }; //================================================================ @@ -344,6 +359,9 @@ namespace connectivity const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XRowSet >& _rxRowSet, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxColumn ) = 0; + + protected: + ~IDataAccessToolsFactory() {} }; //.................................................................... diff --git a/connectivity/inc/connectivity/warningscontainer.hxx b/connectivity/inc/connectivity/warningscontainer.hxx index 273390ccbf7f..937fd8be343b 100644 --- a/connectivity/inc/connectivity/warningscontainer.hxx +++ b/connectivity/inc/connectivity/warningscontainer.hxx @@ -50,6 +50,9 @@ namespace dbtools virtual void appendWarning(const ::com::sun::star::sdbc::SQLException& _rWarning) = 0; virtual void appendWarning(const ::com::sun::star::sdbc::SQLWarning& _rWarning) = 0; virtual void appendWarning(const ::com::sun::star::sdb::SQLContext& _rContext) = 0; + + protected: + ~IWarningsContainer() {} }; //==================================================================== -- cgit v1.2.3