On Fri, 05 Jan 2018 19:30:59 GMT, Mike Wey wrote:

I've found two issues with gtkd.Implement, and with those fixed things seem to work.

For a7456b5 a null check was missing for the returned object, causing a segfault when null was returned from getPath.

For 143fe42 In the case where an out TreeIter was used the generated code would set to pointer passed to the wrapper function to the adress of the new TreeIter instead of setting the data in the TreeIter.

For the GtkTreeIter* vs GtkTreeIter** the iters are marked with out because they are marked as such in the GObject introspection files.
Most of the time out parameters are indeed defined as GtkTreeIter** but it shouldn't matter much as the out documents that you will get an empty iter passed in that parameter. Tough the generated code should handle that case correctly which it wasn't.

I was using version ~master for those fixes. I saw that gtk-d had been update on 2018-Feb-28, so I tried upgrading to that version, 3.7.4. But version 3.7.4 still seems to have these bugs. I get a wrong stamp value in iterHasChild. If I ignore that issue I get a crash.