Fix reference cycles in VST3/CLAP wrappers #225
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR resolves #222, which was caused by the
execute_backgroundandexecute_guicallbacks both receiving a strong clone of their parent wrappers'Arcs, leading to a reference cycle.I've gone for the most obvious fix in this situation - just downgrade the
Arcs before moving them into their respective callbacks, and ignore any tasks posted after the wrappers have been dropped. I've confirmed that this resolves the memory leak (and the subsequent VST3 crash in FL Studio), and I haven't noticed any issues caused by dropping the tasks -- though please correct me if I'm wrong on that.