Strange Leak Detector Assertions Running VST3


#1

Upon closing the host after instantiating a VST3 build of my plugin I receive *** Leaked objects detected: 2 instance(s) of class StringArray (varies from 2-6 instances)… but I don’t use StringArrays anywhere in my code. I do, however, use static const juce::StringRef members of my processor for my parameter IDs that I pass into my juce::AudioProcessorValueTreeState.

I profiled with Xcode’s “Leaks” instrument (although I don’t find it super reliable) and it fires off leak detections for juce::JuceVST3Component::JuceVST3Component() - specifically when that constructor calls to juce::AudioProcessorValueTreeState::createAndAddParameter() from my plugin. Instruments reported the offending leaks deriving from operator new(unsigned long) which I thought may be allocations of typedef uint32 Vst::ParamID, but I didn’t see any explicit allocations of that type.

Has anyone else run into this issue? I can’t seem to recreate the leak detection in formats of my plugin other than VST3.

I’m on macOS High Sierra (10.13.4), Xcode 9.3, using JUCE’s master branch (tag v5.3.1)