From d5df89190c1a6b482407d2c124a83fafea96a183 Mon Sep 17 00:00:00 2001 From: jules Date: Sun, 7 Oct 2012 10:53:06 +0100 Subject: [PATCH] AudioUnit: name CFString release fixes. --- modules/juce_audio_plugin_client/AU/juce_AU_Wrapper.mm | 4 +--- .../format_types/juce_AudioUnitPluginFormat.mm | 7 +++++++ 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/modules/juce_audio_plugin_client/AU/juce_AU_Wrapper.mm b/modules/juce_audio_plugin_client/AU/juce_AU_Wrapper.mm index dbdaf94cc6..38c8271804 100644 --- a/modules/juce_audio_plugin_client/AU/juce_AU_Wrapper.mm +++ b/modules/juce_audio_plugin_client/AU/juce_AU_Wrapper.mm @@ -402,9 +402,7 @@ public: if (juceFilter->isMetaParameter (index)) outParameterInfo.flags |= kAudioUnitParameterFlag_IsGlobalMeta; - CFStringRef cfName (name.toCFString()); - AUBase::FillInParameterName (outParameterInfo, cfName, false); - CFRelease (cfName); + AUBase::FillInParameterName (outParameterInfo, name.toCFString(), true); outParameterInfo.minValue = 0.0f; outParameterInfo.maxValue = 1.0f; diff --git a/modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.mm b/modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.mm index d3ab673597..b32c3945a8 100644 --- a/modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.mm +++ b/modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.mm @@ -610,9 +610,16 @@ public: parameterIds [index], &info, &sz) == noErr) { if ((info.flags & kAudioUnitParameterFlag_HasCFNameString) != 0) + { name = String::fromCFString (info.cfNameString); + + if ((info.flags & kAudioUnitParameterFlag_CFNameRelease) != 0) + CFRelease (info.cfNameString); + } else + { name = String (info.name, sizeof (info.name)); + } } return name;