summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrederik Gladhorn <frederik.gladhorn@digia.com>2014-01-17 18:20:40 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-01-18 00:20:27 +0100
commitaa66bb128b4d853c6de200bf374758025dcd94b2 (patch)
tree97489863843aacc053c88c117b9203a6c30f5058
parent6c12e81e58b5e38c4d075cc6d7adaaaf01d80879 (diff)
downloadqtwebsockets-aa66bb128b4d853c6de200bf374758025dcd94b2.tar.gz
Add a few more const refs
In case of processPing we need to make a copy that potentially detaches when masking is requested, but pings are < 125 bytes. Before this code would copy the byte array in the same way much earlier. Change-Id: If0592bb4b508eeb11fdbf05c4bb98b9679ed0549 Reviewed-by: Kurt Pattyn <pattyn.kurt@gmail.com>
-rw-r--r--src/websockets/qwebsocket_p.cpp18
-rw-r--r--src/websockets/qwebsocket_p.h6
-rw-r--r--src/websockets/qwebsocketdataprocessor_p.h16
-rw-r--r--src/websockets/qwebsocketframe.cpp2
-rw-r--r--src/websockets/qwebsocketframe_p.h2
-rw-r--r--src/websockets/qwebsocketserver_p.cpp2
-rw-r--r--src/websockets/qwebsocketserver_p.h2
7 files changed, 24 insertions, 24 deletions
diff --git a/src/websockets/qwebsocket_p.cpp b/src/websockets/qwebsocket_p.cpp
index 8505ddb..e00f209 100644
--- a/src/websockets/qwebsocket_p.cpp
+++ b/src/websockets/qwebsocket_p.cpp
@@ -440,14 +440,13 @@ void QWebSocketPrivate::open(const QUrl &url, bool mask)
/*!
\internal
*/
-void QWebSocketPrivate::ping(QByteArray payload)
+void QWebSocketPrivate::ping(const QByteArray &payload)
{
- if (payload.length() > 125)
- payload.truncate(125);
+ QByteArray payloadTruncated = payload.left(125);
m_pingTimer.restart();
- QByteArray pingFrame = getFrameHeader(QWebSocketProtocol::OC_PING, payload.size(),
+ QByteArray pingFrame = getFrameHeader(QWebSocketProtocol::OC_PING, payloadTruncated.size(),
0 /*do not mask*/, true);
- pingFrame.append(payload);
+ pingFrame.append(payloadTruncated);
qint64 ret = writeFrame(pingFrame);
Q_UNUSED(ret);
}
@@ -1024,7 +1023,7 @@ void QWebSocketPrivate::processData()
/*!
\internal
*/
-void QWebSocketPrivate::processPing(QByteArray data)
+void QWebSocketPrivate::processPing(const QByteArray &data)
{
Q_ASSERT(m_pSocket);
quint32 maskingKey = 0;
@@ -1032,16 +1031,17 @@ void QWebSocketPrivate::processPing(QByteArray data)
maskingKey = generateMaskingKey();
m_pSocket->write(getFrameHeader(QWebSocketProtocol::OC_PONG, data.size(), maskingKey, true));
if (data.size() > 0) {
+ QByteArray maskedData = data;
if (m_mustMask)
- QWebSocketProtocol::mask(&data, maskingKey);
- m_pSocket->write(data);
+ QWebSocketProtocol::mask(&maskedData, maskingKey);
+ m_pSocket->write(maskedData);
}
}
/*!
\internal
*/
-void QWebSocketPrivate::processPong(QByteArray data)
+void QWebSocketPrivate::processPong(const QByteArray &data)
{
Q_Q(QWebSocket);
Q_EMIT q->pong(static_cast<quint64>(m_pingTimer.elapsed()), data);
diff --git a/src/websockets/qwebsocket_p.h b/src/websockets/qwebsocket_p.h
index 2786727..8f5d054 100644
--- a/src/websockets/qwebsocket_p.h
+++ b/src/websockets/qwebsocket_p.h
@@ -154,7 +154,7 @@ public:
public Q_SLOTS:
void close(QWebSocketProtocol::CloseCode closeCode, QString reason);
void open(const QUrl &url, bool mask);
- void ping(QByteArray payload);
+ void ping(const QByteArray &payload);
#ifndef QT_NO_SSL
void ignoreSslErrors();
@@ -162,8 +162,8 @@ public Q_SLOTS:
private Q_SLOTS:
void processData();
- void processPing(QByteArray data);
- void processPong(QByteArray data);
+ void processPing(const QByteArray &data);
+ void processPong(const QByteArray &data);
void processClose(QWebSocketProtocol::CloseCode closeCode, QString closeReason);
void processHandshake(QTcpSocket *pSocket);
void processStateChanged(QAbstractSocket::SocketState socketState);
diff --git a/src/websockets/qwebsocketdataprocessor_p.h b/src/websockets/qwebsocketdataprocessor_p.h
index 256bcf4..983d391 100644
--- a/src/websockets/qwebsocketdataprocessor_p.h
+++ b/src/websockets/qwebsocketdataprocessor_p.h
@@ -78,14 +78,14 @@ public:
static quint64 maxFrameSize();
Q_SIGNALS:
- void pingReceived(QByteArray data);
- void pongReceived(QByteArray data);
- void closeReceived(QWebSocketProtocol::CloseCode closeCode, QString closeReason);
- void textFrameReceived(QString frame, bool lastFrame);
- void binaryFrameReceived(QByteArray frame, bool lastFrame);
- void textMessageReceived(QString message);
- void binaryMessageReceived(QByteArray message);
- void errorEncountered(QWebSocketProtocol::CloseCode code, QString description);
+ void pingReceived(const QByteArray &data);
+ void pongReceived(const QByteArray &data);
+ void closeReceived(QWebSocketProtocol::CloseCode closeCode, const QString &closeReason);
+ void textFrameReceived(const QString &frame, bool lastFrame);
+ void binaryFrameReceived(const QByteArray &frame, bool lastFrame);
+ void textMessageReceived(const QString &message);
+ void binaryMessageReceived(const QByteArray &message);
+ void errorEncountered(QWebSocketProtocol::CloseCode code, const QString &description);
public Q_SLOTS:
void process(QIODevice *pIoDevice);
diff --git a/src/websockets/qwebsocketframe.cpp b/src/websockets/qwebsocketframe.cpp
index 9765027..7c50e81 100644
--- a/src/websockets/qwebsocketframe.cpp
+++ b/src/websockets/qwebsocketframe.cpp
@@ -523,7 +523,7 @@ QWebSocketFrame QWebSocketFrame::readFrame(QIODevice *pIoDevice)
/*!
\internal
*/
-void QWebSocketFrame::setError(QWebSocketProtocol::CloseCode code, QString closeReason)
+void QWebSocketFrame::setError(QWebSocketProtocol::CloseCode code, const QString &closeReason)
{
clear();
m_closeCode = code;
diff --git a/src/websockets/qwebsocketframe_p.h b/src/websockets/qwebsocketframe_p.h
index 74597a2..8c06a27 100644
--- a/src/websockets/qwebsocketframe_p.h
+++ b/src/websockets/qwebsocketframe_p.h
@@ -118,7 +118,7 @@ private:
PS_WAIT_FOR_MORE_DATA
};
- void setError(QWebSocketProtocol::CloseCode code, QString closeReason);
+ void setError(QWebSocketProtocol::CloseCode code, const QString &closeReason);
bool checkValidity();
};
diff --git a/src/websockets/qwebsocketserver_p.cpp b/src/websockets/qwebsocketserver_p.cpp
index 747586c..52955ad 100644
--- a/src/websockets/qwebsocketserver_p.cpp
+++ b/src/websockets/qwebsocketserver_p.cpp
@@ -341,7 +341,7 @@ QSslConfiguration QWebSocketServerPrivate::sslConfiguration() const
}
#endif
-void QWebSocketServerPrivate::setError(QWebSocketProtocol::CloseCode code, QString errorString)
+void QWebSocketServerPrivate::setError(QWebSocketProtocol::CloseCode code, const QString &errorString)
{
if ((m_error != code) || (m_errorString != errorString)) {
Q_Q(QWebSocketServer);
diff --git a/src/websockets/qwebsocketserver_p.h b/src/websockets/qwebsocketserver_p.h
index 8bf5725..b7072e0 100644
--- a/src/websockets/qwebsocketserver_p.h
+++ b/src/websockets/qwebsocketserver_p.h
@@ -120,7 +120,7 @@ public:
QSslConfiguration sslConfiguration() const;
#endif
- void setError(QWebSocketProtocol::CloseCode code, QString errorString);
+ void setError(QWebSocketProtocol::CloseCode code, const QString &errorString);
private Q_SLOTS:
void onNewConnection();