diff options
Diffstat (limited to 'src/corelib/tools/qringbuffer.cpp')
| -rw-r--r-- | src/corelib/tools/qringbuffer.cpp | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/src/corelib/tools/qringbuffer.cpp b/src/corelib/tools/qringbuffer.cpp index 96ba5c2b44c..d3d71dd9e21 100644 --- a/src/corelib/tools/qringbuffer.cpp +++ b/src/corelib/tools/qringbuffer.cpp @@ -71,18 +71,13 @@ void QRingChunk::detach() QByteArray QRingChunk::toByteArray() && { + // ### Replace with std::move(chunk).sliced(head(), size()) once sliced()&& is available if (headOffset != 0 || tailOffset != chunk.size()) { if (isShared()) - return chunk.mid(headOffset, size()); - - if (headOffset != 0) { - char *ptr = chunk.data(); - ::memmove(ptr, ptr + headOffset, size()); - tailOffset -= headOffset; - headOffset = 0; - } + return chunk.sliced(head(), size()); chunk.resize(tailOffset); + chunk.remove(0, headOffset); } return std::move(chunk); |
