Crash in juce::Slider::getTextFromValue() while creating a new plugin instance


#1

A user reported following crash when opening the plug-in in Logic X:

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread 0 ch.toguaudioline.talunolxv2 0x00000001221e7088 juce::Slider::getTextFromValue(double) + 8 1 ch.toguaudioline.talunolxv2 0x00000001221e5bff juce::Slider::Pimpl::lookAndFeelChanged(juce::LookAndFeel&) + 159 2 ch.toguaudioline.talunolxv2 0x00000001221e5637 juce::Slider::init(juce::Slider::SliderStyle, juce::Slider::TextEntryBoxPosition) + 135 3 ch.toguaudioline.talunolxv2 0x00000001221e54a9 juce::Slider::Slider() + 409 4 ch.toguaudioline.talunolxv2 0x00000001220a6f4e ServiceControlEntry::ServiceControlEntry() + 142 5 ch.toguaudioline.talunolxv2 0x00000001220a6a80 ServiceControlDialog::ServiceControlDialog() + 64 6 ch.toguaudioline.talunolxv2 0x000000012209fd64 TalScalableComponent::TalScalableComponent() + 164 7 ch.toguaudioline.talunolxv2 0x000000012209b9e5 TalComponent::TalComponent(TalCore*) + 53 8 ch.toguaudioline.talunolxv2 0x00000001220b79a2 TalCore::createEditor() + 34 9 ch.toguaudioline.talunolxv2 0x00000001220d09f8 juce::AudioProcessor::createEditorIfNeeded() + 72 10 ch.toguaudioline.talunolxv2 0x000000012208e371 JuceAU::JuceUICreationClass::uiViewForAudioUnit(objc_object*, objc_selector*,

I’m not sure what the problem could be. I’m using the standard slider attachments attached to a slider. Can it have something to do with LookAndFeel::setDefaultLookAndFeel(talLookAndFeel); without using a static lookAndFeelClass? Unfortunately i can’t reproduce the issue on my system…
Any help is welcome!

Edit: No SliderAttachments used in this case.
It maybe crashes here:
owner.getTextFromValue (currentValue.getValue())


#2

I now call following constructor as a work around:

Slider(RotaryVerticalDrag, TextEntryBoxPosition::NoTextBox)

instead of

Slider()

This should fix the issue, because it does not call the crashing method. Not sure what the problem is. My sliders are on the stack. Maybe that’s not optimal too.


#3

How would you manage to have them on the stack in a plugin?

If you mean you have code like :

class MyEditor : public Component
{
  Slider m_volume;
  Slider m_pan;
};

That doesn’t mean the Sliders are on the stack if the editor is instantiated on the heap, which it normally would be for a JUCE AudioProcessor.


#4

Thanks for the information. They aren’t on the stack then. It’s like in your example. I just don’t use new to create them.


#5

I just did see that i do not init the parameters like described in this thread:

I missed this one:
paramState.state = ValueTree(“Foo”);

Maybe thats the source of the issue…