aboutsummaryrefslogtreecommitdiffstats
path: root/src/shared/trk/trkutils.cpp
diff options
context:
space:
mode:
authorRobert Loehning <[email protected]>2009-10-13 19:11:30 +0200
committerRobert Loehning <[email protected]>2009-10-13 19:11:30 +0200
commit885a425dd138ff27ca10f641c4a864a7c75c153a (patch)
tree7746f101d0b4a09034980fa281556dcf3d1e4e32 /src/shared/trk/trkutils.cpp
parent1db44c05136bdfa070729df35b687c92bee37655 (diff)
Trk: Some minor code improvements
Diffstat (limited to 'src/shared/trk/trkutils.cpp')
-rw-r--r--src/shared/trk/trkutils.cpp22
1 files changed, 11 insertions, 11 deletions
diff --git a/src/shared/trk/trkutils.cpp b/src/shared/trk/trkutils.cpp
index 7d31f586ff4..463415e7c21 100644
--- a/src/shared/trk/trkutils.cpp
+++ b/src/shared/trk/trkutils.cpp
@@ -107,6 +107,7 @@ QByteArray frameMessage(byte command, byte token, const QByteArray &data, bool s
//logMessage("check: " << s << checksum << x;
QByteArray response;
+ response.reserve(data.size() + 3);
response.append(char(command));
response.append(char(token));
response.append(data);
@@ -115,12 +116,12 @@ QByteArray frameMessage(byte command, byte token, const QByteArray &data, bool s
QByteArray encodedData = encode7d(response);
QByteArray ba;
+ ba.reserve(encodedData.size() + 6);
if (serialFrame) {
ba.append(char(0x01));
ba.append(char(0x90));
const ushort encodedSize = encodedData.size() + 2; // 2 x 0x7e
- ba.append(char(encodedSize / 256));
- ba.append(char(encodedSize % 256));
+ appendShort(&ba, encodedSize, BigEndian);
}
ba.append(char(0x7e));
ba.append(encodedData);
@@ -227,7 +228,7 @@ QString quoteUnprintableLatin1(const QByteArray &ba)
QByteArray decode7d(const QByteArray &ba)
{
QByteArray res;
- res.reserve(ba.size() + 2);
+ res.reserve(ba.size());
for (int i = 0; i < ba.size(); ++i) {
byte c = byte(ba.at(i));
if (c == 0x7d) {
@@ -279,10 +280,11 @@ void appendShort(QByteArray *ba, ushort s, Endianness endian)
void appendInt(QByteArray *ba, uint i, Endianness endian)
{
- int b3 = i % 256; i -= b3; i /= 256;
- int b2 = i % 256; i -= b2; i /= 256;
- int b1 = i % 256; i -= b1; i /= 256;
- int b0 = i % 256; i -= b0; i /= 256;
+ const uchar b3 = i % 256; i /= 256;
+ const uchar b2 = i % 256; i /= 256;
+ const uchar b1 = i % 256; i /= 256;
+ const uchar b0 = i;
+ ba->reserve(ba->size() + 4);
if (endian == BigEndian) {
ba->append(b0);
ba->append(b1);
@@ -298,11 +300,9 @@ void appendInt(QByteArray *ba, uint i, Endianness endian)
void appendString(QByteArray *ba, const QByteArray &str, Endianness endian, bool appendNullTerminator)
{
- const int n = str.size();
- const int fullSize = n + (appendNullTerminator ? 1 : 0);
+ const int fullSize = str.size() + (appendNullTerminator ? 1 : 0);
appendShort(ba, fullSize, endian); // count the terminating \0
- for (int i = 0; i != n; ++i)
- ba->append(str.at(i));
+ ba->append(str);
if (appendNullTerminator)
ba->append('\0');
}