From 1388d5f88224b15950d82075c527d20cea5dedd6 Mon Sep 17 00:00:00 2001 From: Denis Shienkov Date: Sun, 2 Apr 2017 19:44:10 +0300 Subject: Get rid of originalEventMask member The event mask variable is used only once in process of initialization, so we do not need to keep this variable as the class member. Change-Id: I1f97a312cc92345d435dee821fefb8c2de33665e Reviewed-by: Anton Kudryavtsev Reviewed-by: Denis Shienkov --- src/serialport/qserialport.cpp | 1 - src/serialport/qserialport_p.h | 5 ++--- src/serialport/qserialport_win.cpp | 14 ++++++-------- 3 files changed, 8 insertions(+), 12 deletions(-) diff --git a/src/serialport/qserialport.cpp b/src/serialport/qserialport.cpp index 81beb2d..fa780f3 100644 --- a/src/serialport/qserialport.cpp +++ b/src/serialport/qserialport.cpp @@ -107,7 +107,6 @@ QSerialPortPrivate::QSerialPortPrivate() , readStarted(false) , notifier(0) , startAsyncWriteTimer(0) - , originalEventMask(0) , triggeredEventMask(0) #elif defined(Q_OS_UNIX) , descriptor(-1) diff --git a/src/serialport/qserialport_p.h b/src/serialport/qserialport_p.h index b0f3f0c..7512da0 100644 --- a/src/serialport/qserialport_p.h +++ b/src/serialport/qserialport_p.h @@ -157,6 +157,8 @@ public: qint64 writeData(const char *data, qint64 maxSize); + bool initialize(QIODevice::OpenMode mode); + static QString portNameToSystemLocation(const QString &port); static QString portNameFromSystemLocation(const QString &location); @@ -176,7 +178,6 @@ public: #if defined(Q_OS_WIN32) - bool initialize(); bool setDcb(DCB *dcb); bool getDcb(DCB *dcb); OVERLAPPED *waitForNotified(int msecs); @@ -208,14 +209,12 @@ public: OVERLAPPED communicationOverlapped; OVERLAPPED readCompletionOverlapped; OVERLAPPED writeCompletionOverlapped; - DWORD originalEventMask; DWORD triggeredEventMask; #elif defined(Q_OS_UNIX) static qint32 settingFromBaudRate(qint32 baudRate); - bool initialize(QIODevice::OpenMode mode); bool setTermios(const termios *tio); bool getTermios(termios *tio); diff --git a/src/serialport/qserialport_win.cpp b/src/serialport/qserialport_win.cpp index 84bf5b9..95edf2d 100644 --- a/src/serialport/qserialport_win.cpp +++ b/src/serialport/qserialport_win.cpp @@ -176,12 +176,9 @@ static inline void qt_set_flowcontrol(DCB *dcb, QSerialPort::FlowControl flowcon bool QSerialPortPrivate::open(QIODevice::OpenMode mode) { DWORD desiredAccess = 0; - originalEventMask = 0; - if (mode & QIODevice::ReadOnly) { + if (mode & QIODevice::ReadOnly) desiredAccess |= GENERIC_READ; - originalEventMask |= EV_RXCHAR; - } if (mode & QIODevice::WriteOnly) desiredAccess |= GENERIC_WRITE; @@ -193,7 +190,7 @@ bool QSerialPortPrivate::open(QIODevice::OpenMode mode) return false; } - if (initialize()) + if (initialize(mode)) return true; ::CloseHandle(handle); @@ -658,7 +655,7 @@ qint64 QSerialPortPrivate::queuedBytesCount(QSerialPort::Direction direction) co : ((direction == QSerialPort::Output) ? comstat.cbOutQue : -1); } -inline bool QSerialPortPrivate::initialize() +inline bool QSerialPortPrivate::initialize(QIODevice::OpenMode mode) { Q_Q(QSerialPort); @@ -691,7 +688,8 @@ inline bool QSerialPortPrivate::initialize() return false; } - if (!::SetCommMask(handle, originalEventMask)) { + const DWORD eventMask = (mode & QIODevice::ReadOnly) ? EV_RXCHAR : 0; + if (!::SetCommMask(handle, eventMask)) { setError(getSystemError()); return false; } @@ -702,7 +700,7 @@ inline bool QSerialPortPrivate::initialize() notifier->setHandle(handle); notifier->setEnabled(true); - if ((originalEventMask & EV_RXCHAR) && !startAsyncCommunication()) + if ((eventMask & EV_RXCHAR) && !startAsyncCommunication()) return false; return true; -- cgit v1.2.1