From: Thiago Macieira Date: Fri, 25 Jan 2013 21:39:28 +0000 (-0800) Subject: Add virtual destructors to two classes with other virtuals X-Git-Tag: upstream/5.2.95+rc1~83^2^2~5 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=a45d35c07f9eed27fc286ab5fbc00789d45259b5;p=platform%2Fupstream%2Fqtmultimedia.git 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 --- diff --git a/src/multimedia/audio/qaudiosystemplugin.cpp b/src/multimedia/audio/qaudiosystemplugin.cpp index 85fa855..0262026 100644 --- a/src/multimedia/audio/qaudiosystemplugin.cpp +++ b/src/multimedia/audio/qaudiosystemplugin.cpp @@ -44,6 +44,10 @@ QT_BEGIN_NAMESPACE +QAudioSystemFactoryInterface::~QAudioSystemFactoryInterface() +{ +} + /*! \class QAudioSystemPlugin \brief The QAudioSystemPlugin class provides an abstract base for audio plugins. diff --git a/src/multimedia/audio/qaudiosystemplugin.h b/src/multimedia/audio/qaudiosystemplugin.h index 7a8a460..b2e1dd1 100644 --- a/src/multimedia/audio/qaudiosystemplugin.h +++ b/src/multimedia/audio/qaudiosystemplugin.h @@ -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 \ diff --git a/src/multimedia/qmediaserviceprovider.cpp b/src/multimedia/qmediaserviceprovider.cpp index 8be091d..09dff9d 100644 --- a/src/multimedia/qmediaserviceprovider.cpp +++ b/src/multimedia/qmediaserviceprovider.cpp @@ -50,6 +50,10 @@ QT_BEGIN_NAMESPACE +QMediaServiceProviderFactoryInterface::~QMediaServiceProviderFactoryInterface() +{ +} + class QMediaServiceProviderHintPrivate : public QSharedData { public: diff --git a/src/multimedia/qmediaserviceproviderplugin.h b/src/multimedia/qmediaserviceproviderplugin.h index 870ee59..9a7ff1d 100644 --- a/src/multimedia/qmediaserviceproviderplugin.h +++ b/src/multimedia/qmediaserviceproviderplugin.h @@ -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 \