From f11862a05591452bdad9c1abd244288a2964a036 Mon Sep 17 00:00:00 2001 From: Liang Qi Date: Fri, 11 Sep 2015 09:58:50 +0200 Subject: rsv1-3 should be bool instead of int And reorded the data members of QWebSocketFrame to save some space. Change-Id: I6fdaf74f344ac84e5a3f19883309455503a7ec4c Reviewed-by: Luca Niccoli Reviewed-by: Maks Naumov Reviewed-by: Liang Qi --- src/websockets/qwebsocketframe.cpp | 54 ++++++---------------- src/websockets/qwebsocketframe_p.h | 15 +++--- .../websocketframe/tst_websocketframe.cpp | 32 ++++++------- 3 files changed, 38 insertions(+), 63 deletions(-) diff --git a/src/websockets/qwebsocketframe.cpp b/src/websockets/qwebsocketframe.cpp index d533921..b76fa5c 100644 --- a/src/websockets/qwebsocketframe.cpp +++ b/src/websockets/qwebsocketframe.cpp @@ -61,14 +61,14 @@ QT_BEGIN_NAMESPACE QWebSocketFrame::QWebSocketFrame() : m_closeCode(QWebSocketProtocol::CloseCodeNormal), m_closeReason(), - m_isFinalFrame(true), m_mask(0), - m_rsv1(0), - m_rsv2(0), - m_rsv3(0), m_opCode(QWebSocketProtocol::OpCodeReservedC), m_length(0), m_payload(), + m_isFinalFrame(true), + m_rsv1(false), + m_rsv2(false), + m_rsv3(false), m_isValid(false) { } @@ -79,14 +79,14 @@ QWebSocketFrame::QWebSocketFrame() : QWebSocketFrame::QWebSocketFrame(const QWebSocketFrame &other) : m_closeCode(other.m_closeCode), m_closeReason(other.m_closeReason), - m_isFinalFrame(other.m_isFinalFrame), m_mask(other.m_mask), - m_rsv1(other.m_rsv1), - m_rsv2(other.m_rsv2), - m_rsv3(other.m_rsv3), m_opCode(other.m_opCode), m_length(other.m_length), m_payload(other.m_payload), + m_isFinalFrame(other.m_isFinalFrame), + m_rsv1(other.m_rsv1), + m_rsv2(other.m_rsv2), + m_rsv3(other.m_rsv3), m_isValid(other.m_isValid) { } @@ -118,14 +118,14 @@ QWebSocketFrame &QWebSocketFrame::operator =(const QWebSocketFrame &other) QWebSocketFrame::QWebSocketFrame(QWebSocketFrame &&other) : m_closeCode(qMove(other.m_closeCode)), m_closeReason(qMove(other.m_closeReason)), - m_isFinalFrame(qMove(other.m_isFinalFrame)), m_mask(qMove(other.m_mask)), - m_rsv1(qMove(other.m_rsv1)), - m_rsv2(qMove(other.m_rsv2)), - m_rsv3(qMove(other.m_rsv3)), m_opCode(qMove(other.m_opCode)), m_length(qMove(other.m_length)), m_payload(qMove(other.m_payload)), + m_isFinalFrame(qMove(other.m_isFinalFrame)), + m_rsv1(qMove(other.m_rsv1)), + m_rsv2(qMove(other.m_rsv2)), + m_rsv3(qMove(other.m_rsv3)), m_isValid(qMove(other.m_isValid)) {} @@ -236,30 +236,6 @@ quint32 QWebSocketFrame::mask() const return m_mask; } -/*! - \internal - */ -int QWebSocketFrame::rsv1() const -{ - return m_rsv1; -} - -/*! - \internal - */ -int QWebSocketFrame::rsv2() const -{ - return m_rsv2; -} - -/*! - \internal - */ -int QWebSocketFrame::rsv3() const -{ - return m_rsv3; -} - /*! \internal */ @@ -287,9 +263,9 @@ void QWebSocketFrame::clear() m_closeReason.clear(); m_isFinalFrame = true; m_mask = 0; - m_rsv1 = 0; - m_rsv2 = 0; - m_rsv3 = 0; + m_rsv1 = false; + m_rsv2 = false; + m_rsv3 = false; m_opCode = QWebSocketProtocol::OpCodeReservedC; m_length = 0; m_payload.clear(); diff --git a/src/websockets/qwebsocketframe_p.h b/src/websockets/qwebsocketframe_p.h index 131775b..b0c1ab2 100644 --- a/src/websockets/qwebsocketframe_p.h +++ b/src/websockets/qwebsocketframe_p.h @@ -75,9 +75,9 @@ public: bool isContinuationFrame() const; bool hasMask() const; quint32 mask() const; //returns 0 if no mask - int rsv1() const; - int rsv2() const; - int rsv3() const; + inline bool rsv1() const { return m_rsv1; } + inline bool rsv2() const { return m_rsv2; } + inline bool rsv3() const { return m_rsv3; } QWebSocketProtocol::OpCode opCode() const; QByteArray payload() const; @@ -90,16 +90,15 @@ public: private: QWebSocketProtocol::CloseCode m_closeCode; QString m_closeReason; - bool m_isFinalFrame; quint32 m_mask; - int m_rsv1; - int m_rsv2; - int m_rsv3; QWebSocketProtocol::OpCode m_opCode; - quint8 m_length; QByteArray m_payload; + bool m_isFinalFrame; + bool m_rsv1; + bool m_rsv2; + bool m_rsv3; bool m_isValid; enum ProcessingState diff --git a/tests/auto/websockets/websocketframe/tst_websocketframe.cpp b/tests/auto/websockets/websocketframe/tst_websocketframe.cpp index 5db82d5..ecfcf3b 100644 --- a/tests/auto/websockets/websocketframe/tst_websocketframe.cpp +++ b/tests/auto/websockets/websocketframe/tst_websocketframe.cpp @@ -244,9 +244,9 @@ void tst_WebSocketFrame::tst_copyConstructorAndAssignment() void tst_WebSocketFrame::tst_goodFrames_data() { - QTest::addColumn("rsv1"); - QTest::addColumn("rsv2"); - QTest::addColumn("rsv3"); + QTest::addColumn("rsv1"); + QTest::addColumn("rsv2"); + QTest::addColumn("rsv3"); QTest::addColumn("mask"); QTest::addColumn("opCode"); QTest::addColumn("isFinal"); @@ -256,54 +256,54 @@ void tst_WebSocketFrame::tst_goodFrames_data() QTest::addColumn("isContinuationFrame"); QTest::newRow("Non masked final text frame with small payload") - << 0 << 0 << 0 + << false << false << false << 0U << QWebSocketProtocol::OpCodeText << true << QStringLiteral("Hello world!").toUtf8() << false << true << false; QTest::newRow("Non masked final binary frame with small payload") - << 0 << 0 << 0 + << false << false << false << 0U << QWebSocketProtocol::OpCodeBinary << true << QByteArrayLiteral("\x00\x01\x02\x03\x04") << false << true << false; QTest::newRow("Non masked final text frame with no payload") - << 0 << 0 << 0 + << false << false << false << 0U << QWebSocketProtocol::OpCodeText << true << QByteArray() << false << true << false; QTest::newRow("Non masked final binary frame with no payload") - << 0 << 0 << 0 + << false << false << false << 0U << QWebSocketProtocol::OpCodeBinary << true << QByteArray() << false << true << false; QTest::newRow("Non masked final close frame with small payload") - << 0 << 0 << 0 + << false << false << false << 0U << QWebSocketProtocol::OpCodeClose << true << QStringLiteral("Hello world!").toUtf8() << true << false << false; QTest::newRow("Non masked final close frame with no payload") - << 0 << 0 << 0 + << false << false << false << 0U << QWebSocketProtocol::OpCodeClose << true << QByteArray() << true << false << false; QTest::newRow("Non masked final ping frame with small payload") - << 0 << 0 << 0 + << false << false << false << 0U << QWebSocketProtocol::OpCodePing << true << QStringLiteral("Hello world!").toUtf8() << true << false << false; QTest::newRow("Non masked final pong frame with no payload") - << 0 << 0 << 0 + << false << false << false << 0U << QWebSocketProtocol::OpCodePong << true << QByteArray() << true << false << false; QTest::newRow("Non masked final continuation frame with small payload") - << 0 << 0 << 0 + << false << false << false << 0U << QWebSocketProtocol::OpCodeContinue << true << QStringLiteral("Hello world!").toUtf8() << false << true << true; QTest::newRow("Non masked non-final continuation frame with small payload") - << 0 << 0 << 0 + << false << false << false << 0U << QWebSocketProtocol::OpCodeContinue << false << QStringLiteral("Hello world!").toUtf8() << false << true << true; @@ -311,9 +311,9 @@ void tst_WebSocketFrame::tst_goodFrames_data() void tst_WebSocketFrame::tst_goodFrames() { - QFETCH(int, rsv1); - QFETCH(int, rsv2); - QFETCH(int, rsv3); + QFETCH(bool, rsv1); + QFETCH(bool, rsv2); + QFETCH(bool, rsv3); QFETCH(quint32, mask); QFETCH(QWebSocketProtocol::OpCode, opCode); QFETCH(bool, isFinal); -- cgit v1.2.1