GNOME Bugzilla – Bug 700092
regression, inherit do_ methods from Gtk.TreeModel not working
Last modified: 2013-05-13 06:16:54 UTC
Our application breaks when moving from 3.4 to 3.8 old: Ubuntu 12.10 gtk++ : 3.6.0 pygobject : 3.4.0 new: stock Ubuntu 13.04 gtk++ : 3.6.4 pygobject : 3.8.0 Specifically, we could do multiple inheritance of method do_get_n_columns in class inheriting from class TreeBaseModel(GObject.GObject, Gtk.TreeModel) This no longer works, the method bound is always the topmost do_get_n_columns. Is this intended behavior? Workaround: like generictreemodel in pygtkcompat: def do_get_n_columns(self): """Internal method. Don't inherit""" return self.on_get_n_columns() in topmost class, then inherit on_get_n_columns as usual
Confirmed. Added expectantly failing test: https://git.gnome.org/browse/pygobject/commit/?id=065503d5e284d This still need to be be bisected.
Bisecting yields for following commits: https://git.gnome.org/browse/pygobject/commit/?id=3fcd987272a779e5ee https://git.gnome.org/browse/pygobject/commit/?id=21076d4b8f3ec8e253
Created attachment 243958 [details] [review] Fix vfunc info search for classes with multiple inheritance Ensure the search for vfunc info continues recursively even if the current class being looked does not contain an InterfaceInfo. This more exhaustive search is needed for setups with multiple sub-classes and multiple inheritance. This should also be pushed to 3.8.
Created attachment 243965 [details] [review] Fix vfunc info search for classes with multiple inheritance Ensure the search for vfunc GI info continues recursively even if the current class being looked at does not contain GI info of type InterfaceInfo. This more exhaustive search is needed for setups with multiple sub-classes and multiple inheritance. (updated commit message)
Comment on attachment 243965 [details] [review] Fix vfunc info search for classes with multiple inheritance Thanks for fixing this! Please also push to 3.8.
Attachment 243965 [details] pushed as bef5939 - Fix vfunc info search for classes with multiple inheritance
Pushed to master and the 3.8 branch.