Ok, I found a problem. First, it appears that `unlink` isn't always called before `delete_cycle_collectable`. In case of no cycles, it may not be called at all, so this will leak the stuff that's unlinked. This is easy enough solved by calling `unlink` from `delete_cycle_collectable`. The next problem is that this causes a weird memory corruption, because now the `load_info` is actually released for channels in the non-cyclic cases, and this seems to cause the corruption. Presumably, this is why it was not released before. Any idea what's going on here? I could drop the patch that releases the load_info, but I don't understand why it should be leaking? At least a comment would be warranted IMO. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/2691#note_30863