Bug 697229 - Custom Interface implementations will be broken with glib 2.37/38

Output when running glibmm/tests/glibmm_interface_implementation modified
according to the patch in comment 14.

1. Old order of base classes, Glib::Object before interfaces (not like in
   the patch in comment 14)
   
  class CustomAction :
    public Glib::Object,
    public Gio::Action

1.1 Without the patch in comment 21.

(process:10084): GLib-GObject-WARNING **: Attempt to add property gtkmm__CustomObject_12CustomAction::enabled after class was initialised
(process:10084): GLib-GObject-WARNING **: Attempt to add property gtkmm__CustomObject_12CustomAction::name after class was initialised
(process:10084): GLib-GObject-WARNING **: Attempt to add property gtkmm__CustomObject_12CustomAction::parameter-type after class was initialised
(process:10084): GLib-GObject-WARNING **: Attempt to add property gtkmm__CustomObject_12CustomAction::state after class was initialised
(process:10084): GLib-GObject-WARNING **: Attempt to add property gtkmm__CustomObject_12CustomAction::state-type after class was initialised
(process:10084): GLib-GObject-WARNING **: attempting to add an interface (GAction) to class (gtkmm__CustomObject_12CustomAction) after class_init
(process:10084): GLib-GObject-WARNING **: Attempt to add property gtkmm__CustomObject_12CustomAction::custom-property after class was initialised
The name is 'custom-name'.
The name property of the implemented interface is ''.
The custom string property is 'Initial value.'.
The custom string property (after changing it) is 'A new value.'.
The custom property after g_object_get/set() is 'Another value'.
The custom property through the Glib::Property<> is 'Another value'.
The name property of the implemented interface is ''.


1.2 With the patch in comment 21.

(process:15673): GLib-GObject-WARNING **: Attempt to add property gtkmm__CustomObject_12CustomAction::enabled after class was initialised
(process:15673): GLib-GObject-WARNING **: Attempt to add property gtkmm__CustomObject_12CustomAction::name after class was initialised
(process:15673): GLib-GObject-WARNING **: Attempt to add property gtkmm__CustomObject_12CustomAction::parameter-type after class was initialised
(process:15673): GLib-GObject-WARNING **: Attempt to add property gtkmm__CustomObject_12CustomAction::state after class was initialised
(process:15673): GLib-GObject-WARNING **: Attempt to add property gtkmm__CustomObject_12CustomAction::state-type after class was initialised
(process:15673): GLib-GObject-WARNING **: attempting to add an interface (GAction) to class (gtkmm__CustomObject_12CustomAction) after class_init
(process:15673): GLib-GObject-WARNING **: Attempt to add property gtkmm__CustomObject_12CustomAction::custom-property after class was initialised
The name is 'custom-name'.
The name property of the implemented interface is ''.
The custom string property is 'Initial value.'.
The custom string property (after changing it) is 'A new value.'.
The custom property after g_object_get/set() is 'Another value'.
The custom property through the Glib::Property<> is 'Another value'.
The name property of the implemented interface is ''.


2. New order of base classes, interfaces before Glib::Object (like in
   the patch in comment 14)

  class CustomAction :
    public Gio::Action,
    public Glib::Object

2.1 Without the patch in comment 21.

(process:10267): glibmm-CRITICAL **: Glib::Interface::Interface(const Glib::Interface_Class&): assertion 'gobject_ != 0' failed
(process:10267): GLib-GObject-WARNING **: Attempt to add property gtkmm__CustomObject_12CustomAction::custom-property after class was initialised
(process:10267): GLib-GIO-CRITICAL **: g_action_get_name: assertion 'G_IS_ACTION (action)' failed
The name is ''.
(process:10267): GLib-GObject-WARNING **: g_object_get_property: object class 'gtkmm__CustomObject_12CustomAction' has no property named 'name'
The name property of the implemented interface is ''.
The custom string property is 'Initial value.'.
The custom string property (after changing it) is 'A new value.'.
The custom property after g_object_get/set() is 'Another value'.
The custom property through the Glib::Property<> is 'Another value'.
(process:10267): GLib-GObject-WARNING **: g_object_get_property: object class 'gtkmm__CustomObject_12CustomAction' has no property named 'name'
The name property of the implemented interface is ''.
**
ERROR:glibmm_interface_implementation/main.cc:61:int main(int, char**): assertion failed: (get_name_called)
Avbruten (SIGABRT) (minnesutskrift skapad)


2.2 With the patch in comment 21.

(process:15831): GLib-GObject-WARNING **: Attempt to add property gtkmm__CustomObject_12CustomAction::custom-property after class was initialised
The name is 'custom-name'.
The name property of the implemented interface is ''.
The custom string property is 'Initial value.'.
The custom string property (after changing it) is 'A new value.'.
The custom property after g_object_get/set() is 'Another value'.
The custom property through the Glib::Property<> is 'Another value'.
The name property of the implemented interface is ''.

