DataStreamPeer: Use UTF-8 QByteArrays instead of QString for message headers
authorManuel Nickschas <sputnick@quassel-irc.org>
Fri, 24 Jan 2014 22:54:25 +0000 (23:54 +0100)
committerManuel Nickschas <sputnick@quassel-irc.org>
Sat, 15 Feb 2014 21:01:01 +0000 (22:01 +0100)
This affects the objectName in SyncMessage, InitRequest and InitData.
While the savings should be rather small in particular with compression
enabled, we shouldn't skip this opportunity; while introspecting all
serialized data for QStrings would be too invasive, we can easily do
it for those clearly defined message fields.

src/common/protocols/datastream/datastreampeer.cpp

index df87b13..acd0bc4 100644 (file)
@@ -321,7 +321,7 @@ void DataStreamPeer::handlePackedFunc(const QVariant &packedFunc)
                 return;
             }
             QByteArray className = params.takeFirst().toByteArray();
-            QString objectName = params.takeFirst().toString();
+            QString objectName = QString::fromUtf8(params.takeFirst().toByteArray());
             QByteArray slotName = params.takeFirst().toByteArray();
             handle(Protocol::SyncMessage(className, objectName, slotName, params));
             break;
@@ -341,7 +341,7 @@ void DataStreamPeer::handlePackedFunc(const QVariant &packedFunc)
                 return;
             }
             QByteArray className = params[0].toByteArray();
-            QString objectName = params[1].toString();
+            QString objectName = QString::fromUtf8(params[1].toByteArray());
             handle(Protocol::InitRequest(className, objectName));
             break;
         }
@@ -351,7 +351,7 @@ void DataStreamPeer::handlePackedFunc(const QVariant &packedFunc)
                 return;
             }
             QByteArray className = params[0].toByteArray();
-            QString objectName = params[1].toString();
+            QString objectName = QString::fromUtf8(params[1].toByteArray());
             QVariantMap initData = params[2].toMap();
             handle(Protocol::InitData(className, objectName, initData));
             break;
@@ -387,7 +387,7 @@ void DataStreamPeer::handlePackedFunc(const QVariant &packedFunc)
 
 void DataStreamPeer::dispatch(const Protocol::SyncMessage &msg)
 {
-    dispatchPackedFunc(QVariantList() << (qint16)Sync << msg.className << msg.objectName << msg.slotName << msg.params);
+    dispatchPackedFunc(QVariantList() << (qint16)Sync << msg.className << msg.objectName.toUtf8() << msg.slotName << msg.params);
 }
 
 
@@ -399,13 +399,13 @@ void DataStreamPeer::dispatch(const Protocol::RpcCall &msg)
 
 void DataStreamPeer::dispatch(const Protocol::InitRequest &msg)
 {
-    dispatchPackedFunc(QVariantList() << (qint16)InitRequest << msg.className << msg.objectName);
+    dispatchPackedFunc(QVariantList() << (qint16)InitRequest << msg.className << msg.objectName.toUtf8());
 }
 
 
 void DataStreamPeer::dispatch(const Protocol::InitData &msg)
 {
-    dispatchPackedFunc(QVariantList() << (qint16)InitData << msg.className << msg.objectName << msg.initData);
+    dispatchPackedFunc(QVariantList() << (qint16)InitData << msg.className << msg.objectName.toUtf8() << msg.initData);
 }