summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Schürmann <daschuer@mixxx.org>2015-04-23 22:25:15 +0200
committerDaniel Schürmann <daschuer@mixxx.org>2015-04-23 22:25:15 +0200
commit36767275f012d205a8b192b6727a73be0cfd236b (patch)
treeae66d6f235d4a5e5276c6c7ae53599b6d19a09fd
parentafdcb662ea386dc1f891e61a0ee63393f0d5c17e (diff)
Some more CO leak fixes
-rw-r--r--src/controllers/controlpickermenu.cpp2
-rw-r--r--src/controlobjectslave.cpp2
-rw-r--r--src/engine/enginetalkoverducking.cpp5
-rw-r--r--src/mixxx.cpp7
-rw-r--r--src/mixxx.h3
5 files changed, 9 insertions, 10 deletions
diff --git a/src/controllers/controlpickermenu.cpp b/src/controllers/controlpickermenu.cpp
index 0a4279c1d7..25bd1faad5 100644
--- a/src/controllers/controlpickermenu.cpp
+++ b/src/controllers/controlpickermenu.cpp
@@ -485,7 +485,7 @@ ControlPickerMenu::ControlPickerMenu(QWidget* pParent)
}
const int iNumSamplers = ControlObject::get(
- ConfigKey("[Master]", "num_samplers"));
+ ConfigKey("[Master]", "num_samplers"));
for (int iSamplerNumber = 1; iSamplerNumber <= iNumSamplers;
++iSamplerNumber) {
// PlayerManager::groupForSampler is 0-indexed.
diff --git a/src/controlobjectslave.cpp b/src/controlobjectslave.cpp
index d2995326d1..c33a351e80 100644
--- a/src/controlobjectslave.cpp
+++ b/src/controlobjectslave.cpp
@@ -53,7 +53,9 @@ bool ControlObjectSlave::connectValueChanged(const QObject* receiver,
return ret;
}
+// connect to parent object
bool ControlObjectSlave::connectValueChanged(
const char* method, Qt::ConnectionType type) {
+ DEBUG_ASSERT(parent() != NULL);
return connectValueChanged(parent(), method, type);
}
diff --git a/src/engine/enginetalkoverducking.cpp b/src/engine/enginetalkoverducking.cpp
index 1c6c40d688..2a4689f72f 100644
--- a/src/engine/enginetalkoverducking.cpp
+++ b/src/engine/enginetalkoverducking.cpp
@@ -8,9 +8,8 @@ EngineTalkoverDucking::EngineTalkoverDucking(
: EngineSideChainCompressor(group),
m_pConfig(pConfig),
m_group(group) {
- m_pMasterSampleRate = new ControlObjectSlave(m_group, "samplerate");
- m_pMasterSampleRate->connectValueChanged(this,
- SLOT(slotSampleRateChanged(double)),
+ m_pMasterSampleRate = new ControlObjectSlave(m_group, "samplerate", this);
+ m_pMasterSampleRate->connectValueChanged(SLOT(slotSampleRateChanged(double)),
Qt::DirectConnection);
m_pDuckStrength = new ControlPotmeter(ConfigKey(m_group, "duckStrength"), 0.0, 1.0);
diff --git a/src/mixxx.cpp b/src/mixxx.cpp
index 77b664c560..4cd102e34e 100644
--- a/src/mixxx.cpp
+++ b/src/mixxx.cpp
@@ -270,10 +270,8 @@ MixxxMainWindow::MixxxMainWindow(QApplication* pApp, const CmdlineArgs& args)
m_pVCManager->init();
#endif
- m_pNumDecks = new ControlObjectThread(ConfigKey("[Master]", "num_decks"),
- this);
- connect(m_pNumDecks, SIGNAL(valueChanged(double)),
- this, SLOT(slotNumDecksChanged(double)));
+ m_pNumDecks = new ControlObjectSlave(ConfigKey("[Master]", "num_decks"));
+ m_pNumDecks->connectValueChanged(this, SLOT(slotNumDecksChanged(double)));
#ifdef __MODPLUG__
// restore the configuration for the modplug library before trying to load a module
@@ -574,6 +572,7 @@ MixxxMainWindow::~MixxxMainWindow() {
delete m_pShowEffects;
delete m_pShowCoverArt;
delete m_pNumAuxiliaries;
+ delete m_pNumDecks;
// Check for leaked ControlObjects and give warnings.
QList<QSharedPointer<ControlDoublePrivate> > leakedControls;
diff --git a/src/mixxx.h b/src/mixxx.h
index 2ba96554e3..3e1e176a77 100644
--- a/src/mixxx.h
+++ b/src/mixxx.h
@@ -51,7 +51,6 @@ class DlgDeveloperTools;
#include "util/timer.h"
class ControlObjectSlave;
-class ControlObjectThread;
class ControlObject;
class QTranslator;
@@ -303,7 +302,7 @@ class MixxxMainWindow : public QMainWindow {
QList<ControlObjectSlave*> m_pVinylControlEnabled;
QList<ControlObjectSlave*> m_pPassthroughEnabled;
QList<ControlObjectSlave*> m_pAuxiliaryPassthrough;
- ControlObjectThread* m_pNumDecks;
+ ControlObjectSlave* m_pNumDecks;
int m_iNumConfiguredDecks;
QList<ControlObjectSlave*> m_micTalkoverControls;
QSignalMapper* m_VCControlMapper;