[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-kimageshop
Subject: Re: [calligra/calligra/2.9] krita/plugins/extensions/gmic: Fix memory leak
From: Lukast dev <lukast.dev () gmail ! com>
Date: 2015-02-28 7:55:25
Message-ID: CAKdU0rMJ2dxEvwn41bjN+38hSJLOvxGk=hbdYoKMCh6Tb0qDLA () mail ! gmail ! com
[Download RAW message or body]
Hi boud,
good catch! I thought that since QStringListModel is QObject, call to
setModel on QComboBox would set parent to QComboBox of
QStringListModel,
but that's not the case here.
Cheers
Lukas
2015-02-23 12:39 GMT+01:00 Boudewijn Rempt <boud@valdyas.org>:
> Git commit 0245c92f8e83ae3af895d0f0245f390eb83df962 by Boudewijn Rempt.
> Committed on 23/02/2015 at 10:31.
> Pushed by rempt into branch 'calligra/2.9'.
>
> Fix memory leak
>
> M +12 -9 krita/plugins/extensions/gmic/kis_gmic_input_output_widget.cpp
> M +7 -0 krita/plugins/extensions/gmic/kis_gmic_input_output_widget.h
>
> http://commits.kde.org/calligra/0245c92f8e83ae3af895d0f0245f390eb83df962
>
> diff --git a/krita/plugins/extensions/gmic/kis_gmic_input_output_widget.cpp \
> b/krita/plugins/extensions/gmic/kis_gmic_input_output_widget.cpp index \
> 0f4da1c..0cfa2ed 100644
> --- a/krita/plugins/extensions/gmic/kis_gmic_input_output_widget.cpp
> +++ b/krita/plugins/extensions/gmic/kis_gmic_input_output_widget.cpp
> @@ -40,7 +40,10 @@ KisGmicInputOutputWidget::KisGmicInputOutputWidget(QWidget * \
> parent):
> KisGmicInputOutputWidget::~KisGmicInputOutputWidget()
> {
> -
> + delete m_inputModel;
> + delete m_outputModel;
> + delete m_previewModeModel;
> + delete m_previewSizeModel;
> }
>
> KisFilterPreviewWidget* KisGmicInputOutputWidget::previewWidget()
> @@ -84,23 +87,23 @@ void KisGmicInputOutputWidget::createMainLayout()
> << i18n("All outputs");
>
>
> - QStringListModel * inputModel = new QStringListModel(inputModeStrings);
> - inputCombo->setModel(inputModel);
> + m_inputModel = new QStringListModel(inputModeStrings);
> + inputCombo->setModel(m_inputModel);
> QObject::connect(inputCombo, SIGNAL(currentIndexChanged(int)), this, \
> SLOT(setIntputMode(int))); \
> inputCombo->setCurrentIndex(static_cast<int>(m_inputMode));
> - QStringListModel * outputModel = new QStringListModel(outputModeStrings);
> - outputCombo->setModel(outputModel);
> + m_outputModel = new QStringListModel(outputModeStrings);
> + outputCombo->setModel(m_outputModel);
> QObject::connect(outputCombo, SIGNAL(currentIndexChanged(int)), this, \
> SLOT(setOutputMode(int))); \
> outputCombo->setCurrentIndex(static_cast<int>(m_outputMode));
> - QStringListModel * previewModeModel = new QStringListModel(previewMode);
> - outputPreviewCombo->setModel(previewModeModel);
> + m_previewModeModel = new QStringListModel(previewMode);
> + outputPreviewCombo->setModel(m_previewModeModel);
> QObject::connect(outputPreviewCombo, SIGNAL(currentIndexChanged(int)), this, \
> SLOT(setPreviewMode(int))); \
> outputPreviewCombo->setCurrentIndex(static_cast<int>(m_previewMode));
> - QStringListModel * previewSizeModel = new QStringListModel(PREVIEW_SIZE);
> - previewSizeCombo->setModel(previewSizeModel);
> + m_previewSizeModel = new QStringListModel(PREVIEW_SIZE);
> + previewSizeCombo->setModel(m_previewSizeModel);
> QObject::connect(previewSizeCombo, SIGNAL(currentIndexChanged(int)), this, \
> SLOT(setPreviewSize(int))); \
> previewSizeCombo->setCurrentIndex(static_cast<int>(m_previewSize)); }
> diff --git a/krita/plugins/extensions/gmic/kis_gmic_input_output_widget.h \
> b/krita/plugins/extensions/gmic/kis_gmic_input_output_widget.h index \
> f9feb6f..41c6b90d 100644
> --- a/krita/plugins/extensions/gmic/kis_gmic_input_output_widget.h
> +++ b/krita/plugins/extensions/gmic/kis_gmic_input_output_widget.h
> @@ -24,6 +24,8 @@
>
> #include "ui_wdg_gmic_input_output.h"
>
> +class QStringListModel;
> +
> /**
> * creates GUI for Input/Output configuration
> */
> @@ -61,6 +63,11 @@ private:
> OutputPreviewMode m_previewMode;
> PreviewSize m_previewSize;
>
> + QStringListModel *m_inputModel;
> + QStringListModel *m_outputModel;
> + QStringListModel *m_previewModeModel;
> + QStringListModel *m_previewSizeModel;
> +
> };
>
>
_______________________________________________
Krita mailing list
kimageshop@kde.org
https://mail.kde.org/mailman/listinfo/kimageshop
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic