diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2013-07-29 10:01:35 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2013-07-29 10:01:35 +0000 |
| commit | e747c2b87c23b40e853a0870530c4a9fa7dad9df (patch) | |
| tree | 4dea494948a0cf052720597b334cd049d17d5ae7 /src/plugins | |
| parent | 534cebc65c3e06c2e24e0e3695078a1afd533a6c (diff) | |
| download | qmmp-e747c2b87c23b40e853a0870530c4a9fa7dad9df.tar.gz qmmp-e747c2b87c23b40e853a0870530c4a9fa7dad9df.tar.bz2 qmmp-e747c2b87c23b40e853a0870530c4a9fa7dad9df.zip | |
fixed memory leaks
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@3558 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins')
| -rw-r--r-- | src/plugins/Effect/bs2b/bs2bplugin.cpp | 2 | ||||
| -rw-r--r-- | src/plugins/General/converter/converterhelper.cpp | 2 | ||||
| -rw-r--r-- | src/plugins/General/notifier/notifier.cpp | 4 | ||||
| -rw-r--r-- | src/plugins/General/notifier/notifier.h | 4 | ||||
| -rw-r--r-- | src/plugins/General/statusicon/statusicon.cpp | 25 | ||||
| -rw-r--r-- | src/plugins/General/statusicon/statusicon.h | 4 | ||||
| -rw-r--r-- | src/plugins/Output/alsa/outputalsa.cpp | 17 | ||||
| -rw-r--r-- | src/plugins/Output/alsa/outputalsa.h | 10 | ||||
| -rw-r--r-- | src/plugins/Ui/skinned/listwidget.cpp | 2 | ||||
| -rw-r--r-- | src/plugins/Ui/skinned/skin.cpp | 2 |
10 files changed, 40 insertions, 32 deletions
diff --git a/src/plugins/Effect/bs2b/bs2bplugin.cpp b/src/plugins/Effect/bs2b/bs2bplugin.cpp index de73300eb..18ec681f3 100644 --- a/src/plugins/Effect/bs2b/bs2bplugin.cpp +++ b/src/plugins/Effect/bs2b/bs2bplugin.cpp @@ -38,7 +38,7 @@ Bs2bPlugin::Bs2bPlugin() : Effect() Bs2bPlugin::~Bs2bPlugin() { m_instance = 0; - bs2b_clear(m_bs2b_handler); + bs2b_close(m_bs2b_handler); } #define CASE_BS2B(bitsPerSample, dataType, functionToCall, samples, out_data) \ diff --git a/src/plugins/General/converter/converterhelper.cpp b/src/plugins/General/converter/converterhelper.cpp index ed9cbb69e..96ccf72a2 100644 --- a/src/plugins/General/converter/converterhelper.cpp +++ b/src/plugins/General/converter/converterhelper.cpp @@ -49,7 +49,7 @@ ConverterHelper::ConverterHelper(QObject *parent) : QObject(parent) ConverterHelper::~ConverterHelper() { - m_progress->deleteLater(); + delete m_progress; } void ConverterHelper::openConverter() diff --git a/src/plugins/General/notifier/notifier.cpp b/src/plugins/General/notifier/notifier.cpp index 8af0c8d6d..a12034b16 100644 --- a/src/plugins/General/notifier/notifier.cpp +++ b/src/plugins/General/notifier/notifier.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2008-2012 by Ilya Kotov * + * Copyright (C) 2008-2013 by Ilya Kotov * * forkotov02@hotmail.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -72,6 +72,8 @@ Notifier::Notifier(QObject *parent) : QObject(parent) Notifier::~Notifier() { removePsiTuneFiles(); + if (m_popupWidget) + delete m_popupWidget; } void Notifier::setState(Qmmp::State state) diff --git a/src/plugins/General/notifier/notifier.h b/src/plugins/General/notifier/notifier.h index bb58a88cc..2576a9b86 100644 --- a/src/plugins/General/notifier/notifier.h +++ b/src/plugins/General/notifier/notifier.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2008-2012 by Ilya Kotov * + * Copyright (C) 2008-2013 by Ilya Kotov * * forkotov02@hotmail.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -38,7 +38,7 @@ Q_OBJECT public: Notifier(QObject *parent = 0); - ~Notifier(); + virtual~Notifier(); private slots: void showMetaData(); diff --git a/src/plugins/General/statusicon/statusicon.cpp b/src/plugins/General/statusicon/statusicon.cpp index ca051f06b..a0875dd38 100644 --- a/src/plugins/General/statusicon/statusicon.cpp +++ b/src/plugins/General/statusicon/statusicon.cpp @@ -56,21 +56,21 @@ StatusIcon::StatusIcon(QObject *parent) : QObject(parent) m_tray->show(); settings.endGroup(); //actions - QMenu *menu = new QMenu(qobject_cast<QWidget *>(parent)); + m_menu = new QMenu(); QIcon playIcon = QApplication::style()->standardIcon(QStyle::SP_MediaPlay); QIcon pauseIcon = QApplication::style()->standardIcon(QStyle::SP_MediaPause); QIcon stopIcon = QApplication::style()->standardIcon(QStyle::SP_MediaStop); QIcon nextIcon = QApplication::style()->standardIcon(QStyle::SP_MediaSkipForward); QIcon previousIcon = QApplication::style()->standardIcon(QStyle::SP_MediaSkipBackward); - menu->addAction(playIcon,tr("Play"), m_player, SLOT(play())); - menu->addAction(pauseIcon,tr("Pause"), m_core, SLOT(pause())); - menu->addAction(stopIcon,tr("Stop"), m_core, SLOT(stop())); - menu->addSeparator(); - menu->addAction(nextIcon, tr("Next"), m_player, SLOT(next())); - menu->addAction(previousIcon, tr("Previous"), m_player, SLOT(previous())); - menu->addSeparator(); - menu->addAction(tr("Exit"), UiHelper::instance(), SLOT(exit())); - m_tray->setContextMenu(menu); + m_menu->addAction(playIcon,tr("Play"), m_player, SLOT(play())); + m_menu->addAction(pauseIcon,tr("Pause"), m_core, SLOT(pause())); + m_menu->addAction(stopIcon,tr("Stop"), m_core, SLOT(stop())); + m_menu->addSeparator(); + m_menu->addAction(nextIcon, tr("Next"), m_player, SLOT(next())); + m_menu->addAction(previousIcon, tr("Previous"), m_player, SLOT(previous())); + m_menu->addSeparator(); + m_menu->addAction(tr("Exit"), UiHelper::instance(), SLOT(exit())); + m_tray->setContextMenu(m_menu); connect (m_core, SIGNAL(metaDataChanged ()), SLOT(showMetaData())); connect (m_core, SIGNAL(stateChanged (Qmmp::State)), SLOT(setState(Qmmp::State))); setState(m_core->state()); //update state @@ -78,9 +78,10 @@ StatusIcon::StatusIcon(QObject *parent) : QObject(parent) QTimer::singleShot(1500, this, SLOT(showMetaData())); } - StatusIcon::~StatusIcon() -{} +{ + delete m_menu; +} void StatusIcon::setState(Qmmp::State state) { diff --git a/src/plugins/General/statusicon/statusicon.h b/src/plugins/General/statusicon/statusicon.h index 5b42a22d9..908bcec77 100644 --- a/src/plugins/General/statusicon/statusicon.h +++ b/src/plugins/General/statusicon/statusicon.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2008-2009 by Ilya Kotov * + * Copyright (C) 2008-2013 by Ilya Kotov * * forkotov02@hotmail.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -28,6 +28,7 @@ class SoundCore; class MediaPlayer; class QEvent; +class QMenu; /** @@ -55,6 +56,7 @@ private: int m_messageDelay; SoundCore *m_core; MediaPlayer *m_player; + QMenu *m_menu; }; #endif diff --git a/src/plugins/Output/alsa/outputalsa.cpp b/src/plugins/Output/alsa/outputalsa.cpp index f037d40b8..8b5a04c5c 100644 --- a/src/plugins/Output/alsa/outputalsa.cpp +++ b/src/plugins/Output/alsa/outputalsa.cpp @@ -361,7 +361,7 @@ void OutputALSA::uninitialize() VolumeALSA::VolumeALSA() { //alsa mixer - mixer = 0; + m_mixer = 0; QSettings settings(Qmmp::configFile(), QSettings::IniFormat); QString card = settings.value("ALSA/mixer_card","hw:0").toString(); QString dev = settings.value("ALSA/mixer_device", "PCM").toString(); @@ -371,8 +371,8 @@ VolumeALSA::VolumeALSA() VolumeALSA::~VolumeALSA() { - if (mixer) - snd_mixer_close(mixer); + if (m_mixer) + snd_mixer_close(m_mixer); } void VolumeALSA::setVolume(const VolumeSettings &vol) @@ -391,7 +391,7 @@ VolumeSettings VolumeALSA::volume() const return vol; long value = 0; - snd_mixer_handle_events(mixer); + snd_mixer_handle_events(m_mixer); snd_mixer_selem_get_playback_volume(pcm_element, SND_MIXER_SCHN_FRONT_LEFT, &value); vol.left = value; snd_mixer_selem_get_playback_volume(pcm_element, SND_MIXER_SCHN_FRONT_RIGHT, &value); @@ -407,12 +407,12 @@ int VolumeALSA::setupMixer(QString card, QString device) qDebug("OutputALSA: setupMixer()"); - if ((err = getMixer(&mixer, card)) < 0) + if ((err = getMixer(&m_mixer, card)) < 0) return err; parseMixerName(device.toAscii().data(), &name, &index); - pcm_element = getMixerElem(mixer, name, index); + pcm_element = getMixerElem(m_mixer, name, index); free(name); @@ -487,8 +487,10 @@ int VolumeALSA::getMixer(snd_mixer_t **mixer, QString card) { qWarning("OutputALSA: Attaching to mixer %s failed: %s", dev, snd_strerror(-err)); + free(dev); return -1; } + free(dev); if ((err = snd_mixer_selem_register(*mixer, NULL, NULL)) < 0) { qWarning("OutputALSA: Failed to register mixer: %s", @@ -501,8 +503,5 @@ int VolumeALSA::getMixer(snd_mixer_t **mixer, QString card) snd_strerror(-err)); return -1; } - - free(dev); - return (*mixer != NULL); } diff --git a/src/plugins/Output/alsa/outputalsa.h b/src/plugins/Output/alsa/outputalsa.h index f909127ed..375a94db8 100644 --- a/src/plugins/Output/alsa/outputalsa.h +++ b/src/plugins/Output/alsa/outputalsa.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2006-2012 by Ilya Kotov * + * Copyright (C) 2006-2013 by Ilya Kotov * * forkotov02@hotmail.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -70,7 +70,7 @@ class VolumeALSA : public Volume { public: VolumeALSA(); - ~VolumeALSA(); + virtual ~VolumeALSA(); void setVolume(const VolumeSettings &vol); VolumeSettings volume() const; @@ -79,9 +79,9 @@ private: //alsa mixer int setupMixer(QString card, QString device); void parseMixerName(char *str, char **name, int *index); - int getMixer(snd_mixer_t **mixer, QString card); - snd_mixer_elem_t* getMixerElem(snd_mixer_t *mixer, char *name, int index); - snd_mixer_t *mixer; + int getMixer(snd_mixer_t **m_mixer, QString card); + snd_mixer_elem_t* getMixerElem(snd_mixer_t *m_mixer, char *name, int index); + snd_mixer_t *m_mixer; snd_mixer_elem_t *pcm_element; bool m_use_mmap; }; diff --git a/src/plugins/Ui/skinned/listwidget.cpp b/src/plugins/Ui/skinned/listwidget.cpp index bfbcae3bb..f4e9c1c2f 100644 --- a/src/plugins/Ui/skinned/listwidget.cpp +++ b/src/plugins/Ui/skinned/listwidget.cpp @@ -73,6 +73,8 @@ ListWidget::~ListWidget() delete m_metrics; if(m_extra_metrics) delete m_extra_metrics; + qDeleteAll(m_rows); + m_rows.clear(); } void ListWidget::readSettings() diff --git a/src/plugins/Ui/skinned/skin.cpp b/src/plugins/Ui/skinned/skin.cpp index ea127cfb2..f4adb0fdc 100644 --- a/src/plugins/Ui/skinned/skin.cpp +++ b/src/plugins/Ui/skinned/skin.cpp @@ -370,6 +370,8 @@ void Skin::loadPlayList() buttons[PL_BT_SHADE2_N] = pixmap->copy (129,45,9,9); buttons[PL_BT_SHADE2_P] = pixmap->copy (150,42,9,9); + delete pixmap; + } QPixmap *Skin::getPixmap (const QString& name) |
