Add virtual destructors to two classes with other virtuals

Classes with virtuals are used polymorphically (why have virtuals
otherwise?), so they need virtual destructors to be deleted
properly. Unless they are never deleted using objects of those two
classes -- but why have the interface in the first place if that's the
case?

This is binary incompatible change. It was agreed upon in the mailing
list.

Change-Id: I697e4bd53251452a0e6b0c09edd08c4835f90cbd
Discussed-on: http://lists.qt-project.org/pipermail/development/2012-December/008908.html
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
This commit is contained in:
Thiago Macieira
2013-01-25 13:39:28 -08:00
committed by The Qt Project
parent 35393a6469
commit a45d35c07f
4 changed files with 10 additions and 0 deletions

View File

@@ -44,6 +44,10 @@
QT_BEGIN_NAMESPACE
QAudioSystemFactoryInterface::~QAudioSystemFactoryInterface()
{
}
/*!
\class QAudioSystemPlugin
\brief The QAudioSystemPlugin class provides an abstract base for audio plugins.

View File

@@ -66,6 +66,7 @@ struct Q_MULTIMEDIA_EXPORT QAudioSystemFactoryInterface
virtual QAbstractAudioInput* createInput(const QByteArray& device) = 0;
virtual QAbstractAudioOutput* createOutput(const QByteArray& device) = 0;
virtual QAbstractAudioDeviceInfo* createDeviceInfo(const QByteArray& device, QAudio::Mode mode) = 0;
virtual ~QAudioSystemFactoryInterface();
};
#define QAudioSystemFactoryInterface_iid \

View File

@@ -50,6 +50,10 @@
QT_BEGIN_NAMESPACE
QMediaServiceProviderFactoryInterface::~QMediaServiceProviderFactoryInterface()
{
}
class QMediaServiceProviderHintPrivate : public QSharedData
{
public:

View File

@@ -112,6 +112,7 @@ struct Q_MULTIMEDIA_EXPORT QMediaServiceProviderFactoryInterface
{
virtual QMediaService* create(QString const& key) = 0;
virtual void release(QMediaService *service) = 0;
virtual ~QMediaServiceProviderFactoryInterface();
};
#define QMediaServiceProviderFactoryInterface_iid \