Public bug reported: Same for Gtk-2.0.gir
The get_iter method is overriden by models to return a custom iter. The GtkTreeIter is initialised by the caller and passed to the callee who will fill in the user_data attribute. Since the direction is set to "out", the param cannot be passed to the callee (e.g. using pygobject). This makes it impossible to implement custom TreeModels with pygobject. A fix will be to change the direction to "inout" so that the argument gets passed to the callee. <virtual-method name="get_iter" invoker="get_iter"> <doc xml:whitespace="preserve">Sets @iter to a valid iterator pointing to @path. If @path does not exist, @iter is set to an invalid iterator and %FALSE is returned.</doc> <return-value transfer-ownership="none"> <doc xml:whitespace="preserve">%TRUE, if @iter was set</doc> <type name="gboolean" c:type="gboolean"/> </return-value> <parameters> <parameter name="iter" direction="out" caller-allocates="1" transfer-ownership="none"> <doc xml:whitespace="preserve">the uninitialized #GtkTreeIter</doc> <type name="TreeIter" c:type="GtkTreeIter*"/> </parameter> <parameter name="path" transfer-ownership="none"> <doc xml:whitespace="preserve">the #GtkTreePath</doc> <type name="TreePath" c:type="GtkTreePath*"/> </parameter> </parameters> </virtual-method> As a sidenote: What I do not understand though is how the handling of the return value happens. Apparently a tuple is expected with the first argument being the boolean return value and the second argument seems to be copied to the iter->stamp field (the first field of the struct). However, it does not seem possible to set the other struct's fields. When returning anything else than a tuple, the following error is raised (which is ok though, because the calling convention requires to return a tuple there): ERROR:/build/buildd/pygobject-3.2.2/gi/pygi-closure.c:317:_pygi_closure_set_out_arguments: code should not be reached ** Affects: gtk+3.0 (Ubuntu) Importance: Undecided Status: New -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1024492 Title: Gtk-3.0.gir: TreeModel.get_iter argument iter should be direction:inout To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/gtk+3.0/+bug/1024492/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs