summaryrefslogtreecommitdiff
path: root/ChangeLog
diff options
context:
space:
mode:
authorJosé Alburquerque <jaalburqu@svn.gnome.org>2013-04-07 16:40:12 -0400
committerJosé Alburquerque <jaalburqu@svn.gnome.org>2013-04-07 17:07:21 -0400
commited95a3b5ddfb036e91be5d868e74f23ba304f37b (patch)
tree09b94c443f0794d94e42ac99c6d4a8eb336116f0 /ChangeLog
parent98ace3653edcb7590904f6e7d997deacff08fcd5 (diff)
downloadglibmm-ed95a3b5ddfb036e91be5d868e74f23ba304f37b.tar.gz
Gio::TlsClientConnection: Make the class work correctly.
* tools/m4/class_interface.m4 (_CUSTOM_CTOR_CAST): Add a new macro so that classes wrapped by the _CLASS_INTERFACE() macro can implement a custom cast constructor. This is so that classes like Tls[Client|Server]Connection, that derive from Glib::Interface but should also derive from a Glib::Object derived type, though they do not do so in the C API, don't produce warnings from an attempt to set the non-existent properties of the GObject derived type when an attempt to construct the C object is made in the default Glib::Object constructor. Glib::wrap_auto_interface<>(), which is called by Glib::wrap() for interfaces, uses the cast constructor to create the wrapper which calls the cast constructor of Glib::Interface. If the Glib::Object derived base class of the wrapper has a default constructor, that constructor is then called which leads to the Glib::Object default constructor being called, which tries to construct the C object and set its properties thus producing the property setting warnings. A custom cast constructor can chain up to the cast constructor of the Glib::Object derived type thus avoiding the call to the Glib::Object default constructor and the non-existent property setting warnings. * glib/glibmm/interface.cc: * glib/glibmm/interface.h (Interface): Add a default constructor so that in the cases above (when the cast constructor of the Glib::Object's derived type is used), the compiler can find a Glib::Interface default constructor to use. Using the Glib::Interface cast constructor as well as the cast constructor of the Glib::Object derived type would cause "ObjectBase::initialize() called twice for the same GObject" errors.
Diffstat (limited to 'ChangeLog')
-rw-r--r--ChangeLog32
1 files changed, 32 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index ce0349de..c0d14e62 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,35 @@
+2013-04-07 José Alburquerque <jaalburquerque@gmail.com>
+
+ Gio::TlsClientConnection: Make the class work correctly.
+
+ * tools/m4/class_interface.m4 (_CUSTOM_CTOR_CAST): Add a new macro so
+ that classes wrapped by the _CLASS_INTERFACE() macro can implement a
+ custom cast constructor. This is so that classes like
+ Tls[Client|Server]Connection, that derive from Glib::Interface but
+ should also derive from a Glib::Object derived type, though they do
+ not do so in the C API, don't produce warnings from an attempt to set
+ the non-existent properties of the GObject derived type when an
+ attempt to construct the C object is made in the default Glib::Object
+ constructor. Glib::wrap_auto_interface<>(), which is called by
+ Glib::wrap() for interfaces, uses the cast constructor to create the
+ wrapper which calls the cast constructor of Glib::Interface. If the
+ Glib::Object derived base class of the wrapper has a default
+ constructor, that constructor is then called which leads to the
+ Glib::Object default constructor being called, which tries to
+ construct the C object and set its properties thus producing the
+ property setting warnings. A custom cast constructor can chain up to
+ the cast constructor of the Glib::Object derived type thus avoiding
+ the call to the Glib::Object default constructor and the non-existent
+ property setting warnings.
+ * glib/glibmm/interface.cc:
+ * glib/glibmm/interface.h (Interface): Add a default constructor so
+ that in the cases above (when the cast constructor of the
+ Glib::Object's derived type is used), the compiler can find a
+ Glib::Interface default constructor to use. Using the Glib::Interface
+ cast constructor as well as the cast constructor of the Glib::Object
+ derived type would cause "ObjectBase::initialize() called twice
+ for the same GObject" errors.
+
2013-04-06 Murray Cumming <murrayc@murrayc.com>
Add a test of implementing an interface.