summaryrefslogtreecommitdiff
path: root/cppuhelper/inc
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2012-03-14 13:27:56 +0100
committerStephan Bergmann <sbergman@redhat.com>2012-03-14 13:32:02 +0100
commit6e67c03dc0225fc66343546b14e902b9d238b1a3 (patch)
tree6e078783d65e280a721b4e46f0ae0ca6b950f121 /cppuhelper/inc
parentfe4be5047988782f3143a1af505c5eecb3f2af5a (diff)
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.
Diffstat (limited to 'cppuhelper/inc')
-rw-r--r--cppuhelper/inc/cppuhelper/implbase.hxx3
-rw-r--r--cppuhelper/inc/cppuhelper/implbase1.hxx3
-rw-r--r--cppuhelper/inc/cppuhelper/implbase10.hxx3
-rw-r--r--cppuhelper/inc/cppuhelper/implbase11.hxx3
-rw-r--r--cppuhelper/inc/cppuhelper/implbase12.hxx3
-rw-r--r--cppuhelper/inc/cppuhelper/implbase2.hxx3
-rw-r--r--cppuhelper/inc/cppuhelper/implbase3.hxx3
-rw-r--r--cppuhelper/inc/cppuhelper/implbase4.hxx3
-rw-r--r--cppuhelper/inc/cppuhelper/implbase5.hxx3
-rw-r--r--cppuhelper/inc/cppuhelper/implbase6.hxx3
-rw-r--r--cppuhelper/inc/cppuhelper/implbase7.hxx3
-rw-r--r--cppuhelper/inc/cppuhelper/implbase8.hxx3
-rw-r--r--cppuhelper/inc/cppuhelper/implbase9.hxx3
-rw-r--r--cppuhelper/inc/cppuhelper/propertysetmixin.hxx7
-rw-r--r--cppuhelper/inc/cppuhelper/propshlp.hxx12
15 files changed, 53 insertions, 5 deletions
diff --git a/cppuhelper/inc/cppuhelper/implbase.hxx b/cppuhelper/inc/cppuhelper/implbase.hxx
index 34cfed2350f0..85051fb407a2 100644
--- a/cppuhelper/inc/cppuhelper/implbase.hxx
+++ b/cppuhelper/inc/cppuhelper/implbase.hxx
@@ -186,6 +186,7 @@ class SAL_NO_VTABLE SAL_DLLPUBLIC_TEMPLATE ImplHelperBase##N \
, __PUBLIC_IFC##N \
{ \
protected: \
+ ~ImplHelperBase##N() throw () {} \
ClassData & SAL_CALL getClassData( ClassDataBase & s_aCD ) SAL_THROW(()) \
{ \
ClassData & rCD = * static_cast< ClassData * >( &s_aCD ); \
@@ -221,6 +222,8 @@ public: \
{ return this->getClassData( s_aCD ).getTypes(); } \
virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() throw (::com::sun::star::uno::RuntimeException) \
{ return this->getClassData( s_aCD ).getImplementationId(); } \
+protected: \
+ ~ImplHelper##N() throw () {} \
}; \
template< __CLASS_IFC##N > \
class SAL_NO_VTABLE SAL_DLLPUBLIC_TEMPLATE WeakImplHelper##N \
diff --git a/cppuhelper/inc/cppuhelper/implbase1.hxx b/cppuhelper/inc/cppuhelper/implbase1.hxx
index d4cbeea67dd1..c49c9162a14c 100644
--- a/cppuhelper/inc/cppuhelper/implbase1.hxx
+++ b/cppuhelper/inc/cppuhelper/implbase1.hxx
@@ -85,6 +85,9 @@ namespace cppu
{ return ImplHelper_getTypes( cd::get() ); }
virtual com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() throw (com::sun::star::uno::RuntimeException)
{ return ImplHelper_getImplementationId( cd::get() ); }
+
+ protected:
+ ~ImplHelper1() throw () {}
};
/** Implementation helper implementing interfaces com::sun::star::lang::XTypeProvider and
com::sun::star::uno::XInterface which supports weak mechanism to be held weakly
diff --git a/cppuhelper/inc/cppuhelper/implbase10.hxx b/cppuhelper/inc/cppuhelper/implbase10.hxx
index 1ea06d4bf935..8a51770601f3 100644
--- a/cppuhelper/inc/cppuhelper/implbase10.hxx
+++ b/cppuhelper/inc/cppuhelper/implbase10.hxx
@@ -94,6 +94,9 @@ namespace cppu
{ return ImplHelper_getTypes( cd::get() ); }
virtual com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() throw (com::sun::star::uno::RuntimeException)
{ return ImplHelper_getImplementationId( cd::get() ); }
+
+ protected:
+ ~ImplHelper10() throw () {}
};
/** Implementation helper implementing interfaces com::sun::star::lang::XTypeProvider and
com::sun::star::uno::XInterface which supports weak mechanism to be held weakly
diff --git a/cppuhelper/inc/cppuhelper/implbase11.hxx b/cppuhelper/inc/cppuhelper/implbase11.hxx
index bbcd67533c03..4c1a307ae116 100644
--- a/cppuhelper/inc/cppuhelper/implbase11.hxx
+++ b/cppuhelper/inc/cppuhelper/implbase11.hxx
@@ -95,6 +95,9 @@ namespace cppu
{ return ImplHelper_getTypes( cd::get() ); }
virtual com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() throw (com::sun::star::uno::RuntimeException)
{ return ImplHelper_getImplementationId( cd::get() ); }
+
+ protected:
+ ~ImplHelper11() throw () {}
};
/** Implementation helper implementing interfaces com::sun::star::lang::XTypeProvider and
com::sun::star::uno::XInterface which supports weak mechanism to be held weakly
diff --git a/cppuhelper/inc/cppuhelper/implbase12.hxx b/cppuhelper/inc/cppuhelper/implbase12.hxx
index 4211abc4c99a..934dfbe55b83 100644
--- a/cppuhelper/inc/cppuhelper/implbase12.hxx
+++ b/cppuhelper/inc/cppuhelper/implbase12.hxx
@@ -96,6 +96,9 @@ namespace cppu
{ return ImplHelper_getTypes( cd::get() ); }
virtual com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() throw (com::sun::star::uno::RuntimeException)
{ return ImplHelper_getImplementationId( cd::get() ); }
+
+ protected:
+ ~ImplHelper12() throw () {}
};
/** Implementation helper implementing interfaces com::sun::star::lang::XTypeProvider and
com::sun::star::uno::XInterface which supports weak mechanism to be held weakly
diff --git a/cppuhelper/inc/cppuhelper/implbase2.hxx b/cppuhelper/inc/cppuhelper/implbase2.hxx
index 39983d61df39..b77947a8cdc8 100644
--- a/cppuhelper/inc/cppuhelper/implbase2.hxx
+++ b/cppuhelper/inc/cppuhelper/implbase2.hxx
@@ -85,6 +85,9 @@ namespace cppu
{ return ImplHelper_getTypes( cd::get() ); }
virtual com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() throw (com::sun::star::uno::RuntimeException)
{ return ImplHelper_getImplementationId( cd::get() ); }
+
+ protected:
+ ~ImplHelper2() throw () {}
};
/** Implementation helper implementing interfaces com::sun::star::lang::XTypeProvider and
com::sun::star::uno::XInterface which supports weak mechanism to be held weakly
diff --git a/cppuhelper/inc/cppuhelper/implbase3.hxx b/cppuhelper/inc/cppuhelper/implbase3.hxx
index 0ed901fd82f6..88eef99e45af 100644
--- a/cppuhelper/inc/cppuhelper/implbase3.hxx
+++ b/cppuhelper/inc/cppuhelper/implbase3.hxx
@@ -86,6 +86,9 @@ namespace cppu
{ return ImplHelper_getTypes( cd::get() ); }
virtual com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() throw (com::sun::star::uno::RuntimeException)
{ return ImplHelper_getImplementationId( cd::get() ); }
+
+ protected:
+ ~ImplHelper3() throw () {}
};
/** Implementation helper implementing interfaces com::sun::star::lang::XTypeProvider and
com::sun::star::uno::XInterface which supports weak mechanism to be held weakly
diff --git a/cppuhelper/inc/cppuhelper/implbase4.hxx b/cppuhelper/inc/cppuhelper/implbase4.hxx
index cbb33be94806..cb9660cb34aa 100644
--- a/cppuhelper/inc/cppuhelper/implbase4.hxx
+++ b/cppuhelper/inc/cppuhelper/implbase4.hxx
@@ -88,6 +88,9 @@ namespace cppu
{ return ImplHelper_getTypes( cd::get() ); }
virtual com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() throw (com::sun::star::uno::RuntimeException)
{ return ImplHelper_getImplementationId( cd::get() ); }
+
+ protected:
+ ~ImplHelper4() throw () {}
};
/** Implementation helper implementing interfaces com::sun::star::lang::XTypeProvider and
com::sun::star::uno::XInterface which supports weak mechanism to be held weakly
diff --git a/cppuhelper/inc/cppuhelper/implbase5.hxx b/cppuhelper/inc/cppuhelper/implbase5.hxx
index 86918f5b3c1a..71446a5ff72e 100644
--- a/cppuhelper/inc/cppuhelper/implbase5.hxx
+++ b/cppuhelper/inc/cppuhelper/implbase5.hxx
@@ -89,6 +89,9 @@ namespace cppu
{ return ImplHelper_getTypes( cd::get() ); }
virtual com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() throw (com::sun::star::uno::RuntimeException)
{ return ImplHelper_getImplementationId( cd::get() ); }
+
+ protected:
+ ~ImplHelper5() throw () {}
};
/** Implementation helper implementing interfaces com::sun::star::lang::XTypeProvider and
com::sun::star::uno::XInterface which supports weak mechanism to be held weakly
diff --git a/cppuhelper/inc/cppuhelper/implbase6.hxx b/cppuhelper/inc/cppuhelper/implbase6.hxx
index 3e8f5ef4ea6c..dca9d86ac2e6 100644
--- a/cppuhelper/inc/cppuhelper/implbase6.hxx
+++ b/cppuhelper/inc/cppuhelper/implbase6.hxx
@@ -90,6 +90,9 @@ namespace cppu
{ return ImplHelper_getTypes( cd::get() ); }
virtual com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() throw (com::sun::star::uno::RuntimeException)
{ return ImplHelper_getImplementationId( cd::get() ); }
+
+ protected:
+ ~ImplHelper6() throw () {}
};
/** Implementation helper implementing interfaces com::sun::star::lang::XTypeProvider and
com::sun::star::uno::XInterface which supports weak mechanism to be held weakly
diff --git a/cppuhelper/inc/cppuhelper/implbase7.hxx b/cppuhelper/inc/cppuhelper/implbase7.hxx
index b347127cdaf7..93115a38873f 100644
--- a/cppuhelper/inc/cppuhelper/implbase7.hxx
+++ b/cppuhelper/inc/cppuhelper/implbase7.hxx
@@ -91,6 +91,9 @@ namespace cppu
{ return ImplHelper_getTypes( cd::get() ); }
virtual com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() throw (com::sun::star::uno::RuntimeException)
{ return ImplHelper_getImplementationId( cd::get() ); }
+
+ protected:
+ ~ImplHelper7() throw () {}
};
/** Implementation helper implementing interfaces com::sun::star::lang::XTypeProvider and
com::sun::star::uno::XInterface which supports weak mechanism to be held weakly
diff --git a/cppuhelper/inc/cppuhelper/implbase8.hxx b/cppuhelper/inc/cppuhelper/implbase8.hxx
index 8c0aa4a180b3..e37c0c96e206 100644
--- a/cppuhelper/inc/cppuhelper/implbase8.hxx
+++ b/cppuhelper/inc/cppuhelper/implbase8.hxx
@@ -92,6 +92,9 @@ namespace cppu
{ return ImplHelper_getTypes( cd::get() ); }
virtual com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() throw (com::sun::star::uno::RuntimeException)
{ return ImplHelper_getImplementationId( cd::get() ); }
+
+ protected:
+ ~ImplHelper8() throw () {}
};
/** Implementation helper implementing interfaces com::sun::star::lang::XTypeProvider and
com::sun::star::uno::XInterface which supports weak mechanism to be held weakly
diff --git a/cppuhelper/inc/cppuhelper/implbase9.hxx b/cppuhelper/inc/cppuhelper/implbase9.hxx
index cf4f5bbd1e56..a09d79b0a681 100644
--- a/cppuhelper/inc/cppuhelper/implbase9.hxx
+++ b/cppuhelper/inc/cppuhelper/implbase9.hxx
@@ -93,6 +93,9 @@ namespace cppu
{ return ImplHelper_getTypes( cd::get() ); }
virtual com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() throw (com::sun::star::uno::RuntimeException)
{ return ImplHelper_getImplementationId( cd::get() ); }
+
+ protected:
+ ~ImplHelper9() throw () {}
};
/** Implementation helper implementing interfaces com::sun::star::lang::XTypeProvider and
com::sun::star::uno::XInterface which supports weak mechanism to be held weakly
diff --git a/cppuhelper/inc/cppuhelper/propertysetmixin.hxx b/cppuhelper/inc/cppuhelper/propertysetmixin.hxx
index 07d50c01225a..ca3b88214dd3 100644
--- a/cppuhelper/inc/cppuhelper/propertysetmixin.hxx
+++ b/cppuhelper/inc/cppuhelper/propertysetmixin.hxx
@@ -87,6 +87,10 @@ template< typename T > class PropertySetMixin;
@since UDK 3.2.1
*/
+#if defined __GNUC__ && ((__GNUC__ == 4 && __GNUC_MINOR__ >= 6) || __GNUC__ > 4)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wnon-virtual-dtor"
+#endif
class CPPUHELPER_DLLPUBLIC PropertySetMixinImpl:
public com::sun::star::beans::XPropertySet,
public com::sun::star::beans::XFastPropertySet,
@@ -403,6 +407,9 @@ private:
void checkUnknown(rtl::OUString const & propertyName);
};
+#if defined __GNUC__ && ((__GNUC__ == 4 && __GNUC_MINOR__ >= 6) || __GNUC__ > 4)
+#pragma GCC diagnostic pop
+#endif
/**
@short A helper mixin to implement certain UNO interfaces related to property
diff --git a/cppuhelper/inc/cppuhelper/propshlp.hxx b/cppuhelper/inc/cppuhelper/propshlp.hxx
index 1ed2f609e407..08dee8822941 100644
--- a/cppuhelper/inc/cppuhelper/propshlp.hxx
+++ b/cppuhelper/inc/cppuhelper/propshlp.hxx
@@ -334,6 +334,10 @@ public:
sal_Int32 nCount,
sal_Bool bVetoable,
bool bIgnoreRuntimeExceptionsWhileFiring) = 0;
+
+protected:
+ ~IEventNotificationHook() {}
+ // avoid warnings about virtual members and non-virtual dtor
};
@@ -656,11 +660,9 @@ private:
sal_Int32 i_count
);
-public:
+protected:
// Suppress warning about virtual functions but non-virtual destructor:
-#if defined __GNUC__
-#pragma GCC system_header
-#elif defined _MSC_VER
+#if defined _MSC_VER
#pragma warning(push)
#pragma warning(disable: 4265)
#endif
@@ -703,7 +705,7 @@ private:
OPropertySetHelper2( const OPropertySetHelper2 & ) SAL_THROW(());
OPropertySetHelper2 & operator = ( const OPropertySetHelper2 & ) SAL_THROW(());
-public:
+protected:
// Suppress warning about virtual functions but non-virtual destructor:
/**
You must call disposing before destruction.