Related to this issue
I was inspecting the current Nim bindings and was wondering about functions like
From doc page as well as from gobject-introspection we have
indicating that the variant is owned by the library and we must not free it. Most often we have [transfer none] for single instances of gtk, which are reused by the lib and so not have to be freed by user.
But for GVariant? I would really assume that they are allocated new on heap for g_variant_new_ calls, so we have to free then. OK, docs say they are floating, so when we would add them from plain C code to a container then we can forget about them as container will free them. But are we adding them always to container from C code? Compare that to plain gtk widgets – gtk_button_new() will give us also a floating widget, but that function is not marked with [transfer none], and so the nim GC handles that well, employing all the toggle_ref and finalizer stuff.