diff options
author | Kjell Ahlstedt <kjell.ahlstedt@bredband.net> | 2016-11-24 19:13:55 +0100 |
---|---|---|
committer | Kjell Ahlstedt <kjell.ahlstedt@bredband.net> | 2016-11-24 19:13:55 +0100 |
commit | 3911557cb62ed055f16ece0a7a58cbbabe35ef6b (patch) | |
tree | d3028e4d646bc184c35372e840996b5a2222efb0 /gio/src/application.ccg | |
parent | 722f9c1cf7998baf33d4f9d7110f6ad6c4f1858c (diff) | |
download | glibmm-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.ccg | 1 |
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 |