On 10-01-18 15:44, Luís Marques wrote:

...having only one userData on the D side means that, for instance, if my tree iterator needs to store two pointers I have to define and allocate a separate object to hold the user data, while I could just store the pointers directly in the GtkTreeIter. Couldn't the D TreeIter provide access to the 3 pointers, instead of just one? Or any other solution that would allow me to exploit those gpointer.sizeof * 3 bytes on the D side.

That is probably because i never needed more than one.

I've added properties and get/set functions for userData 2 and 3.
And we now use std.variant in the implementation of the get and set
functions so it supports more types that were implemented before.