From 2151af531af887e766b9a84200741a838898652b Mon Sep 17 00:00:00 2001
From: Septen <gammerxpower@gmail.com>
Date: Mon, 20 Jun 2016 16:08:08 +0400
Subject: [PATCH] ParameterEditor class: fixed crash and memory leak issues.

---
 Source/Processors/Parameter/ParameterEditor.cpp | 3 +++
 Source/Processors/Parameter/ParameterEditor.h   | 5 +++--
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/Source/Processors/Parameter/ParameterEditor.cpp b/Source/Processors/Parameter/ParameterEditor.cpp
index 131654116..82221b289 100755
--- a/Source/Processors/Parameter/ParameterEditor.cpp
+++ b/Source/Processors/Parameter/ParameterEditor.cpp
@@ -47,6 +47,7 @@ ParameterEditor::ParameterEditor (GenericProcessor* processor, Parameter& parame
         label->setColour (Label::textColourId, Colours::darkgrey);
         label->setFont (labelFont);
         label->setBounds (10, 1, 100, 10);
+        m_labelsArray.add (label);
         addAndMakeVisible (label);
 
         desiredWidth = 120;
@@ -75,6 +76,7 @@ ParameterEditor::ParameterEditor (GenericProcessor* processor, Parameter& parame
         label->setColour (Label::textColourId, Colours::darkgrey);
         label->setFont (labelFont);
         label->setBounds ((80 - width) / 2 - 5, 70, 100, 10);
+        m_labelsArray.add (label);
         addAndMakeVisible (label);
 
         desiredWidth = 80;
@@ -90,6 +92,7 @@ ParameterEditor::ParameterEditor (GenericProcessor* processor, Parameter& parame
         label->setColour (Label::textColourId, Colours::darkgrey);
         label->setFont (labelFont);
         label->setBounds (0, 0, 100, 10);
+        m_labelsArray.add (label);
         addAndMakeVisible (label);
 
         Array<var> possibleValues = parameter.getPossibleValues();
diff --git a/Source/Processors/Parameter/ParameterEditor.h b/Source/Processors/Parameter/ParameterEditor.h
index 43ce8ffe4..046d342d8 100755
--- a/Source/Processors/Parameter/ParameterEditor.h
+++ b/Source/Processors/Parameter/ParameterEditor.h
@@ -68,13 +68,14 @@ public:
 private:
     bool m_activationState;
 
-    GenericProcessor* m_processor;
     Parameter* m_parameter;
-    ScopedPointer<ChannelSelector> m_channelSelector;
+    GenericProcessor* m_processor;
+    ChannelSelector* m_channelSelector;
 
     OwnedArray<ParameterSlider>     m_sliderArray;
     OwnedArray<ParameterButton>     m_buttonArray;
     OwnedArray<ParameterCheckbox>   m_checkboxArray;
+    OwnedArray<Label>               m_labelsArray;
 
     Array<int> m_buttonIdArray;
     Array<int> m_sliderIdArray;
-- 
GitLab