From 0b0de968940e5db61dd8af1f6e3430087f88f2ed Mon Sep 17 00:00:00 2001 From: Andrew Meadows Date: Wed, 16 Aug 2017 12:22:05 -0700 Subject: [PATCH] use memcpy instead of copying one byte at a time --- libraries/octree/src/OctreePacketData.cpp | 25 +++++++++-------------- 1 file changed, 10 insertions(+), 15 deletions(-) diff --git a/libraries/octree/src/OctreePacketData.cpp b/libraries/octree/src/OctreePacketData.cpp index 5fd7e4dba3..493dfdcff5 100644 --- a/libraries/octree/src/OctreePacketData.cpp +++ b/libraries/octree/src/OctreePacketData.cpp @@ -582,9 +582,7 @@ bool OctreePacketData::compressContent() { if (compressedData.size() < (int)MAX_OCTREE_PACKET_DATA_SIZE) { _compressedBytes = compressedData.size(); - for (int i = 0; i < _compressedBytes; i++) { - _compressed[i] = compressedData[i]; - } + memcpy(_compressed, compressedData.constData(), _compressedBytes); _dirty = false; success = true; } @@ -598,25 +596,22 @@ void OctreePacketData::loadFinalizedContent(const unsigned char* data, int lengt if (data && length > 0) { if (_enableCompression) { - QByteArray compressedData; - for (int i = 0; i < length; i++) { - compressedData[i] = data[i]; - _compressed[i] = compressedData[i]; - } _compressedBytes = length; + memcpy(_compressed, data, _compressedBytes); + + QByteArray compressedData; + compressedData.resize(_compressedBytes); + memcpy(compressedData.data(), data, _compressedBytes); + QByteArray uncompressedData = qUncompress(compressedData); if (uncompressedData.size() <= _bytesAvailable) { _bytesInUse = uncompressedData.size(); _bytesAvailable -= uncompressedData.size(); - - for (int i = 0; i < _bytesInUse; i++) { - _uncompressed[i] = uncompressedData[i]; - } + memcpy(_uncompressed, uncompressedData.constData(), _bytesInUse); } } else { - for (int i = 0; i < length; i++) { - _uncompressed[i] = _compressed[i] = data[i]; - } + memcpy(_uncompressed, data, length); + memcpy(_compressed, data, length); _bytesInUse = _compressedBytes = length; } } else {