2019-09-22 Kjell Ahlstedt 2.60.1 2019-09-02 Kjell Ahlstedt Gio::SocketControlMessage: Add deserialize_vfunc_callback() The deserialize vfunc in GLib is a class virtual function (not associated with an instance). Such functions don't exist in C++. But it must be wrapped in one way or another. g_socket_control_message_deserialize() assumes that all subclasses of GSocketControlMessage override this vfunc. A user-program can crash, if any subclass does not. This patch that does not add API. A more complete fix can be committed, when API can be added. Fixes #52 2019-08-12 Kjell Ahlstedt Disable warnings from deprecated GTimeVal and GTime GTimeVal and GTime have been deprecated in glib. They can't be deprecated in the stable glibmm-2-60 branch now. This patch makes it possible to build glibmm-2.60.x against the newest glib. This affects Glib::TimeVal, Glib::Date, Glib::DateTime and Gio::FileInfo. 2019-07-22 Kjell Ahlstedt Revert "Glib, Gio: Regenerate docs.xml and .defs files" This reverts commit 3fcc2bdeb4a8df2172d6cc453b9d07c6cc9eda0d. Changes in glib 2.61 should not have been added to glibmm 2.60 2019-07-21 Kjell Ahlstedt Gio: Fix ownership of some lists and arrays * gio/src/drive.hg: get_volumes(): Glib::OWNERSHIP_SHALLOW -> DEEP * gio/src/mountoperation.hg: signal_ask_question(): DEEP -> NONE A signal handler shall not deallocate its input data. * gio/src/themedicon.hg: get_names(): DEEP -> NONE * gio/src/tlsdatabase.[ccg|hg]: lookup_certificates_issued_by[_finish]_vfunc(): g_list_copy() -> g_list_copy_deep() * gio/src/volumemonitor.hg: get_connected_drives(), get_volumes(), get_mounts(): SHALLOW -> DEEP 2019-07-21 Kjell Ahlstedt Glib, Gio: Regenerate docs.xml and .defs files 2019-07-17 Kjell Ahlstedt Gio::DBus::Object::get_interface_vfunc(): Don't add global symbol The previous fix of Gio::DBus::Object vfuncs added a Glib::unwrap_copy() overload, which became a global symbol in the load module. Replace it with a local name in an anonymous namespace. 2019-07-16 Kjell Ahlstedt Gio::DBus::Object: Fix refcounts in some vfuncs Gio::DBus::Object::get_interface_vfunc() and get_interfaces_vfunc() must add a reference to the returned DBus interfaces. The caller shall unref them. g_dbus_object_get_interface() and g_dbus_object_get_interfaces() are marked (transfer full). 2019-07-12 Kjell Ahlstedt Glib::ustring docs: ustring can't always replace std::string Fixes #47 2019-07-09 Kjell Ahlstedt Glib::init(), Gio::init(): Improve the documentation See issue #49 2019-07-08 Kjell Ahlstedt Glib::Variant>::create(): Fix memory leak Fixes #48 2019-07-08 Kjell Ahlstedt gmmproc: Update enum.pl and h2def.py for new glib deprecation macros * tools/enum.pl: Don't replace MY_ENUMERATOR = '}' with MY_ENUMERATOR = ']'. Remove *_DEPRECATED_TYPE_IN_* and *_DEPRECATED_ENUMERATOR_IN_* when enum definitions are parsed. * tools/defs_gen/h2def.py: When parsing function declarations: Remove G_GNUC_BEGIN_IGNORE_DEPRECATIONS, G_GNUC_END_IGNORE_DEPRECATIONS and G_DECLARE_INTERFACE(*). Update the removals of *_DEPRECATED* and *_AVAILABLE_IN* so the new *_DEPRECATED_TYPE* and friends won't affect the result. 2019-06-30 Kjell Ahlstedt Properties example: Print the property values 2019-06-30 Kjell Ahlstedt Glib::Object, Thread: Use G_GNUC_{BEGIN,END}_IGNORE_DEPRECATIONS * glib/glibmm/object.[h|cc]: GParameter is really deprecated (not just mentioned in a comment). Use G_GNUC_{BEGIN,END}_IGNORE_DEPRECATIONS to avoid warnings. * glib/src/thread.hg: GLib ignores G_DISABLE_DEPRECATED. Use G_GNUC_{BEGIN,END}_IGNORE_DEPRECATIONS to avoid warnings. 2019-06-12 Daniel Boles Property: Clarify “manipulate” → read and/or write 2019-04-26 Kjell Ahlstedt Glib::Checksum, DateTime, TimeZone: Add TODO comments These classes shall have Glib::Value specializations, when we can add API. In the master branch, where API and ABI can be changed, they have been wrapped as _CLASS_BOXEDTYPE. 2019-04-18 Dainis Jonitis Fix callback races in glibmm when source is destructed It is normal situation when glib main loop iterates sources on one thread where it checks whether source is still active and its callback functions can be called and glibmm Source being destroyed on other thread. Glibmm should check once again that callback_data and callback_funcs fields are still valid and GSource was not marked as inactive while its callback handlers are called. Fixes #41 2019-04-18 Martin Ejdestig Use convert_return_gchar_ptr_to_*() in a couple of ustring methods First attempt at fixing memory leak in make_valid() (see previous commit) used make_unique_ptr_gfree() directly because of looking at these methods. Better to use the helper function. This actually fixes undefined behavior for normalize() since g_utf8_normalize() is documented to return NULL if string is not a valid UTF-8 string. The constructor for std::string, which ustring uses for storage, that takes a pointer is documented to have undefined behavior if pointer is NULL. The utility function checks for NULL and uses the default constructor in that case. (Have not looked at implementation of Glib functions, and it may be that all std::string implementations Glibmm is used with handles this case, but good to avoid undefined behavior regardless, I think.)