The issue here is that some hosts, like the ones that you’ve mentioned + the Steinberg editorhost example, don’t call
release() on the
IPluginFactory object when the plug-in is unloaded. This means that its reference count never reaches 0 so it isn’t deleted and JUCE’s leak detector fires a bunch. I’ve moved around the
ScopedJuceInitialiser_GUI objects and removed a few so we minimise the amount of leaked objects but we can’t do anything about the leaked
IPluginFactory. I’ve removed the
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR macro from this object though so it won’t clog up the debug output in misbehaving hosts. The commit is on the
develop branch here.
I’ve also contacted the Ableton devs so hopefully this will be fixed in Live 10 soon.