From: Manuel Nickschas Date: Fri, 24 Jan 2014 22:54:25 +0000 (+0100) Subject: DataStreamPeer: Use UTF-8 QByteArrays instead of QString for message headers X-Git-Tag: 0.10-beta1~26 X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=commitdiff_plain;h=9d3e44edbdbe5b7937e1d375afcd9e2f1941b80c;hp=2dca302472ee44923e164784191891711eff626a DataStreamPeer: Use UTF-8 QByteArrays instead of QString for message headers 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. --- diff --git a/src/common/protocols/datastream/datastreampeer.cpp b/src/common/protocols/datastream/datastreampeer.cpp index df87b136..acd0bc41 100644 --- a/src/common/protocols/datastream/datastreampeer.cpp +++ b/src/common/protocols/datastream/datastreampeer.cpp @@ -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); }