From 34341bc59707c8c90ad5e7f9145220210051e23f Mon Sep 17 00:00:00 2001 From: reuk Date: Tue, 30 Aug 2022 13:37:34 +0100 Subject: [PATCH] APVTS: Avoid calling null function when unspecified --- .../utilities/juce_AudioProcessorValueTreeState.h | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/modules/juce_audio_processors/utilities/juce_AudioProcessorValueTreeState.h b/modules/juce_audio_processors/utilities/juce_AudioProcessorValueTreeState.h index 4c498f9b28..a9e22912b7 100644 --- a/modules/juce_audio_processors/utilities/juce_AudioProcessorValueTreeState.h +++ b/modules/juce_audio_processors/utilities/juce_AudioProcessorValueTreeState.h @@ -498,7 +498,7 @@ public: valueRange, defaultParameterValue, AudioProcessorValueTreeStateParameterAttributes().withLabel (labelText) - .withStringFromValueFunction ([valueToTextFunction] (float v, int) { return valueToTextFunction (v); }) + .withStringFromValueFunction (adaptSignature (std::move (valueToTextFunction))) .withValueFromStringFunction (std::move (textToValueFunction)) .withMeta (isMetaParameter) .withAutomatable (isAutomatableParameter) @@ -515,6 +515,14 @@ public: bool isBoolean() const override; private: + static std::function adaptSignature (std::function func) + { + if (func == nullptr) + return nullptr; + + return [func = std::move (func)] (float v, int) { return func (v); }; + } + void valueChanged (float) override; std::function onValueChanged;