projects
/
platform
/
upstream
/
qtmultimedia.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
e88da21
)
[DirectShow] Fix potention undefined behavior on destruction
author
Konstantin Ritt
<ritt.ks@gmail.com>
Sat, 11 Apr 2015 15:33:20 +0000
(19:33 +0400)
committer
Konstantin Ritt
<ritt.ks@gmail.com>
Mon, 13 Apr 2015 09:58:12 +0000
(09:58 +0000)
The exact warning is:
> deleting object of polymorphic class type which has non-virtual
destructor might cause undefined behavior
Change-Id: I8f259def3f1f7f776fb31ace9dfcc7145426f5c0
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
src/plugins/directshow/player/directshowiosource.h
patch
|
blob
|
history
src/plugins/directshow/player/directshowmediatypelist.cpp
patch
|
blob
|
history
src/plugins/directshow/player/directshowmediatypelist.h
patch
|
blob
|
history
src/plugins/directshow/player/directshowpinenum.h
patch
|
blob
|
history
diff --git
a/src/plugins/directshow/player/directshowiosource.h
b/src/plugins/directshow/player/directshowiosource.h
index
fb3774a
..
e45c852
100644
(file)
--- a/
src/plugins/directshow/player/directshowiosource.h
+++ b/
src/plugins/directshow/player/directshowiosource.h
@@
-49,7
+49,7
@@
class DirectShowIOSource
{
public:
DirectShowIOSource(DirectShowEventLoop *loop);
- ~DirectShowIOSource();
+
virtual
~DirectShowIOSource();
void setDevice(QIODevice *device);
void setAllocator(IMemAllocator *allocator);
diff --git
a/src/plugins/directshow/player/directshowmediatypelist.cpp
b/src/plugins/directshow/player/directshowmediatypelist.cpp
index
c50f31e
..
7adf98c
100644
(file)
--- a/
src/plugins/directshow/player/directshowmediatypelist.cpp
+++ b/
src/plugins/directshow/player/directshowmediatypelist.cpp
@@
-41,7
+41,7
@@
class DirectShowMediaTypeEnum : public IEnumMediaTypes
{
public:
DirectShowMediaTypeEnum(DirectShowMediaTypeList *list, int token, int index = 0);
- ~DirectShowMediaTypeEnum();
+
virtual
~DirectShowMediaTypeEnum();
// IUnknown
HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void **ppvObject);
@@
-143,6
+143,10
@@
DirectShowMediaTypeList::DirectShowMediaTypeList()
{
}
+DirectShowMediaTypeList::~DirectShowMediaTypeList()
+{
+}
+
IEnumMediaTypes *DirectShowMediaTypeList::createMediaTypeEnum()
{
return new DirectShowMediaTypeEnum(this, m_mediaTypeToken, 0);
diff --git
a/src/plugins/directshow/player/directshowmediatypelist.h
b/src/plugins/directshow/player/directshowmediatypelist.h
index
c06363d
..
008293a
100644
(file)
--- a/
src/plugins/directshow/player/directshowmediatypelist.h
+++ b/
src/plugins/directshow/player/directshowmediatypelist.h
@@
-42,6
+42,7
@@
class DirectShowMediaTypeList : public IUnknown
{
public:
DirectShowMediaTypeList();
+ virtual ~DirectShowMediaTypeList();
IEnumMediaTypes *createMediaTypeEnum();
diff --git
a/src/plugins/directshow/player/directshowpinenum.h
b/src/plugins/directshow/player/directshowpinenum.h
index
47b4e1a
..
3cc62e2
100644
(file)
--- a/
src/plugins/directshow/player/directshowpinenum.h
+++ b/
src/plugins/directshow/player/directshowpinenum.h
@@
-42,7
+42,7
@@
class DirectShowPinEnum : public IEnumPins
{
public:
DirectShowPinEnum(const QList<IPin *> &pins);
- ~DirectShowPinEnum();
+
virtual
~DirectShowPinEnum();
// IUnknown
HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void **ppvObject);