diff options
author | Andy Shaw <andy.shaw@digia.com> | 2014-11-27 12:24:17 +0100 |
---|---|---|
committer | Denis Shienkov <denis.shienkov@gmail.com> | 2014-11-27 14:50:33 +0100 |
commit | ae99420608c699de002032c751192065447e1242 (patch) | |
tree | a8eda5878100adf17288aa6bc6d1e76ee46edb57 | |
parent | d7d8022779af536107b5b7d54c106219d7721c1a (diff) | |
download | qtserialport-ae99420608c699de002032c751192065447e1242.tar.gz |
Close the handle for the events that were created
The handles should be closed when QSerialPort is deleted in order to clean
up the native resources.
Change-Id: If04521fc0fa3b898093bda3317962b4c44818034
Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
-rw-r--r-- | src/serialport/qserialport_win.cpp | 10 | ||||
-rw-r--r-- | src/serialport/qserialport_win_p.h | 1 |
2 files changed, 11 insertions, 0 deletions
diff --git a/src/serialport/qserialport_win.cpp b/src/serialport/qserialport_win.cpp index d603cf5..1bf0906 100644 --- a/src/serialport/qserialport_win.cpp +++ b/src/serialport/qserialport_win.cpp @@ -101,6 +101,16 @@ QSerialPortPrivate::QSerialPortPrivate(QSerialPort *q) { } +QSerialPortPrivate::~QSerialPortPrivate() +{ + if (communicationOverlapped.hEvent) + CloseHandle(communicationOverlapped.hEvent); + if (readCompletionOverlapped.hEvent) + CloseHandle(readCompletionOverlapped.hEvent); + if (writeCompletionOverlapped.hEvent) + CloseHandle(writeCompletionOverlapped.hEvent); +} + bool QSerialPortPrivate::open(QIODevice::OpenMode mode) { Q_Q(QSerialPort); diff --git a/src/serialport/qserialport_win_p.h b/src/serialport/qserialport_win_p.h index 4cf8225..e0a5ba7 100644 --- a/src/serialport/qserialport_win_p.h +++ b/src/serialport/qserialport_win_p.h @@ -63,6 +63,7 @@ class QSerialPortPrivate : public QSerialPortPrivateData public: QSerialPortPrivate(QSerialPort *q); + ~QSerialPortPrivate(); bool open(QIODevice::OpenMode mode); void close(); |