diff options
-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 7b7405e..4c8ad07 100644 --- a/src/serialport/qserialport_win.cpp +++ b/src/serialport/qserialport_win.cpp @@ -127,6 +127,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 1e941a0..4af0ba4 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(); |