Crash in PluginBusUtilities getChannelSet() after updateHostDisplay()


#1

I’m calling updateHostDisplay() to update the program name displayed in the host. This works nicely in Live and used to work in Cubase, but with the latest JUCE and Cubase 8.5 on OS X this happens:

juce::Array<juce::AudioProcessor::AudioProcessorBus, juce::DummyCriticalSection, 0>::getReference(index=0)
PluginBusUtilities::getChannelSet(inputBus=true, bus=0)
JuceVSTWrapper::getSpeakerArrangement(VstSpeakerArrangement**, VstSpeakerArrangement**)
AudioEffectX::dispatcher(int, int, long long, void*, float)
JuceVSTWrapper::dispatcher(effGetSpeakerArrangement, int, long long, void*, float)
AudioEffect::dispatchEffectClass(AEffect*, int, int, long long, void*, float)
___lldb_unnamed_function232$$VSTPlugManager ()
___lldb_unnamed_function270$$VSTPlugManager ()
___lldb_unnamed_function383$$VSTPlugManager ()
AudioEffectX::ioChanged()
JuceVSTWrapper::handleAsyncUpdate()

(I also reproduced it in the “audio plugin demo” example by setting “is a synth” and adding a call to updateHostDisplay).

I guess it’s trying to get the channel layout of the input bus, but there isn’t one because it’s a synth.


#2

I think this is fixed on the develop branch. Can you test this?


#3

no, same crash in develop :disappointed:


#4

Ahh man, I could swear I had fixed that. Well anyway, it’s on the latest develop tip.


#5

We have ran into the same problem with a published product built against Juce 4.1. Upgraded to 4.2, but the problem persists - Cubase 8.5 crashes when loading our VSTi.

I assume the fix has not yet merged from develop > master. Can you please point us towards the fix so that we can pull in a local copy ASAP?

More generally - since this is a reproducible hard crash with VSTis in Cubase 8.5, should this not be implemented immediately as a hotfix in the master branch?


#6

try if it works with the fix on my develop branch. pretty stable on cubase8 so far


#7

It’s on this commit here.