summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMurray Cumming <murrayc@murrayc.com>2015-08-22 11:45:03 +0200
committerMurray Cumming <murrayc@murrayc.com>2015-08-22 13:03:54 +0200
commitceb43c2bc0edd56f43970c4e85123c7a4fcd5560 (patch)
tree3fe45ce6f020067ca66c114bf98c106457128a1e
parent90f5049d15ae59878392571d6841ac38dee2d978 (diff)
downloadglibmm-ceb43c2bc0edd56f43970c4e85123c7a4fcd5560.tar.gz
C++11: Mark all _CLASS_OPAQUE_REFCOUNTED classes as final.
Because _CLASS_OPAQUE_REFCOUNTED already generates a comment telling us not to derive from them, presumably because they can only be instantiated by reinterpret_cast<>ing a base C struct. Ideally, _CLASS_OPAQUE_REFCOUNTED would add the final keyword, but the class line is is not generated, so that would be a little difficult.
-rw-r--r--gio/src/dbusintrospection.hg14
-rw-r--r--gio/src/fileattributeinfolist.hg2
-rw-r--r--gio/src/fileinfo.hg2
-rw-r--r--gio/src/resource.hg2
-rw-r--r--gio/src/settingsschema.hg2
-rw-r--r--gio/src/settingsschemakey.hg2
-rw-r--r--gio/src/settingsschemasource.hg2
-rw-r--r--glib/src/bytearray.hg2
-rw-r--r--glib/src/bytes.hg2
-rw-r--r--glib/src/regex.hg2
-rw-r--r--glib/src/variantdict.hg2
-rw-r--r--tools/m4/class_opaque_refcounted.m45
12 files changed, 19 insertions, 20 deletions
diff --git a/gio/src/dbusintrospection.hg b/gio/src/dbusintrospection.hg
index 442415a7..d7921c82 100644
--- a/gio/src/dbusintrospection.hg
+++ b/gio/src/dbusintrospection.hg
@@ -34,7 +34,7 @@ _WRAP_ENUM(PropertyInfoFlags, GDBusPropertyInfoFlags, s#^DBUS_##, NO_GTYPE)
* @newin{2,28}
* @ingroup DBus
*/
-class AnnotationInfo
+class AnnotationInfo final
{
_CLASS_OPAQUE_REFCOUNTED(AnnotationInfo, GDBusAnnotationInfo, NONE, g_dbus_annotation_info_ref, g_dbus_annotation_info_unref)
_IGNORE(g_dbus_annotation_info_ref, g_dbus_annotation_info_unref)
@@ -50,7 +50,7 @@ public:
* @newin{2,28}
* @ingroup DBus
*/
-class ArgInfo
+class ArgInfo final
{
_CLASS_OPAQUE_REFCOUNTED(ArgInfo, GDBusArgInfo, NONE, g_dbus_arg_info_ref, g_dbus_arg_info_unref)
_IGNORE(g_dbus_arg_info_ref, g_dbus_arg_info_unref)
@@ -63,7 +63,7 @@ public:
* @newin{2,28}
* @ingroup DBus
*/
-class MethodInfo
+class MethodInfo final
{
_CLASS_OPAQUE_REFCOUNTED(MethodInfo, GDBusMethodInfo, NONE, g_dbus_method_info_ref, g_dbus_method_info_unref)
_IGNORE(g_dbus_method_info_ref, g_dbus_method_info_unref)
@@ -76,7 +76,7 @@ public:
* @newin{2,28}
* @ingroup DBus
*/
-class SignalInfo
+class SignalInfo final
{
_CLASS_OPAQUE_REFCOUNTED(SignalInfo, GDBusSignalInfo, NONE, g_dbus_signal_info_ref, g_dbus_signal_info_unref)
_IGNORE(g_dbus_signal_info_ref, g_dbus_signal_info_unref)
@@ -89,7 +89,7 @@ public:
* @newin{2,28}
* @ingroup DBus
*/
-class PropertyInfo
+class PropertyInfo final
{
_CLASS_OPAQUE_REFCOUNTED(PropertyInfo, GDBusPropertyInfo, NONE, g_dbus_property_info_ref, g_dbus_property_info_unref)
_IGNORE(g_dbus_property_info_ref, g_dbus_property_info_unref)
@@ -102,7 +102,7 @@ public:
* @newin{2,28}
* @ingroup DBus
*/
-class InterfaceInfo
+class InterfaceInfo final
{
_CLASS_OPAQUE_REFCOUNTED(InterfaceInfo, GDBusInterfaceInfo, NONE, g_dbus_interface_info_ref, g_dbus_interface_info_unref)
_IGNORE(g_dbus_interface_info_ref, g_dbus_interface_info_unref)
@@ -129,7 +129,7 @@ public:
* @newin{2,28}
* @ingroup DBus
*/
-class NodeInfo
+class NodeInfo final
{
_CLASS_OPAQUE_REFCOUNTED(NodeInfo, GDBusNodeInfo, NONE, g_dbus_node_info_ref, g_dbus_node_info_unref)
_IGNORE(g_dbus_node_info_ref, g_dbus_node_info_unref)
diff --git a/gio/src/fileattributeinfolist.hg b/gio/src/fileattributeinfolist.hg
index dc3903aa..4f7bac7c 100644
--- a/gio/src/fileattributeinfolist.hg
+++ b/gio/src/fileattributeinfolist.hg
@@ -45,7 +45,7 @@ namespace Gio
*
* @newin{2,16}
*/
-class FileAttributeInfoList
+class FileAttributeInfoList final
{
_CLASS_OPAQUE_REFCOUNTED(FileAttributeInfoList, GFileAttributeInfoList,
g_file_attribute_info_list_new,
diff --git a/gio/src/fileinfo.hg b/gio/src/fileinfo.hg
index b14a6013..9d31ba46 100644
--- a/gio/src/fileinfo.hg
+++ b/gio/src/fileinfo.hg
@@ -47,7 +47,7 @@ const FileType FILE_TYPE_UNKNOWN = FILE_TYPE_NOT_KNOWN;
*
* @newin{2,16}
*/
-class FileAttributeMatcher
+class FileAttributeMatcher final
{
_CLASS_OPAQUE_REFCOUNTED(FileAttributeMatcher, GFileAttributeMatcher,
NONE, g_file_attribute_matcher_ref, g_file_attribute_matcher_unref)
diff --git a/gio/src/resource.hg b/gio/src/resource.hg
index 730e221d..5cee8bf7 100644
--- a/gio/src/resource.hg
+++ b/gio/src/resource.hg
@@ -128,7 +128,7 @@ _WRAP_ENUM(ResourceLookupFlags, GResourceLookupFlags, newin "2,44")
*
* @newin{2,44}
*/
-class Resource
+class Resource final
{
_CLASS_OPAQUE_REFCOUNTED(Resource, GResource, NONE, g_resource_ref, g_resource_unref)
_IGNORE(g_resource_ref, g_resource_unref)
diff --git a/gio/src/settingsschema.hg b/gio/src/settingsschema.hg
index 4ff7e833..db768b8c 100644
--- a/gio/src/settingsschema.hg
+++ b/gio/src/settingsschema.hg
@@ -52,7 +52,7 @@ namespace Gio
*
* @newin{2,32}
*/
-class SettingsSchema
+class SettingsSchema final
{
_CLASS_OPAQUE_REFCOUNTED(SettingsSchema, GSettingsSchema, NONE, g_settings_schema_ref, g_settings_schema_unref)
diff --git a/gio/src/settingsschemakey.hg b/gio/src/settingsschemakey.hg
index cca21c76..e7894d60 100644
--- a/gio/src/settingsschemakey.hg
+++ b/gio/src/settingsschemakey.hg
@@ -35,7 +35,7 @@ namespace Gio
*
* @newin{2,32}
*/
-class SettingsSchemaKey
+class SettingsSchemaKey final
{
_CLASS_OPAQUE_REFCOUNTED(SettingsSchemaKey, GSettingsSchemaKey, NONE, g_settings_schema_key_ref, g_settings_schema_key_unref)
diff --git a/gio/src/settingsschemasource.hg b/gio/src/settingsschemasource.hg
index 2731f2b3..4097e935 100644
--- a/gio/src/settingsschemasource.hg
+++ b/gio/src/settingsschemasource.hg
@@ -35,7 +35,7 @@ namespace Gio
*
* @newin{2,32}
*/
-class SettingsSchemaSource
+class SettingsSchemaSource final
{
_CLASS_OPAQUE_REFCOUNTED(SettingsSchemaSource, GSettingsSchemaSource, NONE, g_settings_schema_source_ref, g_settings_schema_source_unref)
diff --git a/glib/src/bytearray.hg b/glib/src/bytearray.hg
index 54292758..1db85d84 100644
--- a/glib/src/bytearray.hg
+++ b/glib/src/bytearray.hg
@@ -42,7 +42,7 @@ namespace Glib
*
* @newin{2,36}
*/
-class ByteArray
+class ByteArray final
{
_CLASS_OPAQUE_REFCOUNTED(ByteArray, GByteArray, NONE, g_byte_array_ref, g_byte_array_unref)
_IGNORE(g_byte_array_ref, g_byte_array_unref)
diff --git a/glib/src/bytes.hg b/glib/src/bytes.hg
index 31f1fc9f..56da3527 100644
--- a/glib/src/bytes.hg
+++ b/glib/src/bytes.hg
@@ -51,7 +51,7 @@ namespace Glib
*
* @newin{2,34}
*/
-class Bytes
+class Bytes final
{
_CLASS_OPAQUE_REFCOUNTED(Bytes, GBytes, NONE, g_bytes_ref, g_bytes_unref)
_IGNORE(g_bytes_ref, g_bytes_unref)
diff --git a/glib/src/regex.hg b/glib/src/regex.hg
index f35af4a0..0ad6f097 100644
--- a/glib/src/regex.hg
+++ b/glib/src/regex.hg
@@ -93,7 +93,7 @@ class MatchInfo;
*
* @newin{2,14}
*/
-class Regex
+class Regex final
{
_CLASS_OPAQUE_REFCOUNTED(Regex, GRegex, NONE, g_regex_ref, g_regex_unref)
_IGNORE(g_regex_ref, g_regex_unref)
diff --git a/glib/src/variantdict.hg b/glib/src/variantdict.hg
index 876591f9..7b668691 100644
--- a/glib/src/variantdict.hg
+++ b/glib/src/variantdict.hg
@@ -33,7 +33,7 @@ namespace Glib
*
* newin{2,40}
*/
-class VariantDict
+class VariantDict final
{
//GVariantDict is registered as a boxed type, but it has ref/unref functions instead of copy/free,
//so we use it via RefPtr.
diff --git a/tools/m4/class_opaque_refcounted.m4 b/tools/m4/class_opaque_refcounted.m4
index aae4f948..e33cf527 100644
--- a/tools/m4/class_opaque_refcounted.m4
+++ b/tools/m4/class_opaque_refcounted.m4
@@ -53,9 +53,8 @@ _SECTION(SECTION_SRC_GENERATED)
* wrap it dynamically either.
*
* The cast works because __CPPNAME__ does not have any member data, and
- * it is impossible to derive from it. This is ensured by not implementing
- * the (protected) default constructor. The ctor is protected rather than
- * private just to avoid a compile warning.
+ * it is impossible to derive from it. This is ensured by using final on the
+ * class and by using = delete on the default constructor.
*/
namespace Glib