Description
In Tilix I've added some code ages ago to various high level widget destructors that outputs whether the destructor is called or not. I should be paying more attention to this on GtkD version updates, however I was looking into memory usage recently and noticed a change in behavior starting with 3.6.0.
In 3.5.1 if I close a tiled terminal then execute a GC collection a couple of times I can see the various destructors (VTE, Terminal) being called as expected. However starting in 3.6.0 this no longer happens and the destructors are not called until the program terminates. Now I know that in D destructors are not guarenteed to be called but I use this as a rough barometer with regards to whether I'm leaking objects.
Looking at the changes made between the two versions, there is one thing that sticks out to me. In commit 4b491f5, the event listeners array were changed from being class members to static members of the wrapper. I was wondering if this could be causing a reference to the delegate being held onto to since it never gets removed from the static unless explicitly removed.