summaryrefslogtreecommitdiff
path: root/gio/src/application.ccg
diff options
context:
space:
mode:
authorKjell Ahlstedt <kjell.ahlstedt@bredband.net>2016-11-24 19:13:55 +0100
committerKjell Ahlstedt <kjell.ahlstedt@bredband.net>2016-11-24 19:13:55 +0100
commit3911557cb62ed055f16ece0a7a58cbbabe35ef6b (patch)
treed3028e4d646bc184c35372e840996b5a2222efb0 /gio/src/application.ccg
parent722f9c1cf7998baf33d4f9d7110f6ad6c4f1858c (diff)
downloadglibmm-3911557cb62ed055f16ece0a7a58cbbabe35ef6b.tar.gz
Glib::ObjectBase: Replace extra_object_base_data map by instance data
* glib/glibmm/class.[cc|h]: Remove the clone_custom_type() overload without an interface_class_vector_type argument. * glib/glibmm/interface.cc: * glib/glibmm/object.cc: * glib/glibmm/objectbase.[cc|h]: Replace the std::map containing ExtraObjectBaseData with instance data in ObjectBase. The map was just a way of avoiding an ABI break, but now we can break ABI. The new data is a std::unique_ptr<Class::interface_class_vector_type> rather than a Class::interface_class_vector_type. It's a vector which is used only during a short period during object construction, and only for custom objects. With a pointer to the vector, it need not be created for the majority of objects, and if it is created, it can be deleted when it's no longer needed. * gio/src/application.ccg: * glib/glibmm/main.cc: Add #include <mutex> that should have been there before, but now became necessary, when it was removed from objectbase.h.
Diffstat (limited to 'gio/src/application.ccg')
-rw-r--r--gio/src/application.ccg1
1 files changed, 1 insertions, 0 deletions
diff --git a/gio/src/application.ccg b/gio/src/application.ccg
index 785d050b..97f1c27d 100644
--- a/gio/src/application.ccg
+++ b/gio/src/application.ccg
@@ -21,6 +21,7 @@
#include <giomm/init.h>
#include <cstring> // std::memset()
#include <map>
+#include <mutex>
#include <vector>
namespace // anonymous