From 771220ebc83d8cfb5468caec2d6edc40445f689b Mon Sep 17 00:00:00 2001 From: Alex Trotsenko Date: Sat, 22 Aug 2015 13:43:13 +0300 Subject: Allow to use QRingBuffer in containers Make a private member mutable to enable default assignment operator. Change-Id: I1216875c186ed800e07c6b41a5bae18c3b71b2fa Reviewed-by: Oswald Buddenhagen --- src/corelib/tools/qringbuffer_p.h | 2 +- tests/auto/corelib/tools/qringbuffer/tst_qringbuffer.cpp | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/corelib/tools/qringbuffer_p.h b/src/corelib/tools/qringbuffer_p.h index 96c4f9acb6..a03007f606 100644 --- a/src/corelib/tools/qringbuffer_p.h +++ b/src/corelib/tools/qringbuffer_p.h @@ -135,7 +135,7 @@ private: QList buffers; int head, tail; int tailBuffer; // always buffers.size() - 1 - const int basicBlockSize; + int basicBlockSize; qint64 bufferSize; }; diff --git a/tests/auto/corelib/tools/qringbuffer/tst_qringbuffer.cpp b/tests/auto/corelib/tools/qringbuffer/tst_qringbuffer.cpp index b77fe23bd6..9cc66cd5e2 100644 --- a/tests/auto/corelib/tools/qringbuffer/tst_qringbuffer.cpp +++ b/tests/auto/corelib/tools/qringbuffer/tst_qringbuffer.cpp @@ -34,12 +34,14 @@ #include #include +#include class tst_QRingBuffer : public QObject { Q_OBJECT private slots: void constructing(); + void usingInVector(); void readPointerAtPositionWriteRead(); void readPointerAtPositionEmptyRead(); void readPointerAtPositionWithHead(); @@ -74,6 +76,16 @@ void tst_QRingBuffer::constructing() QCOMPARE(ringBuffer.peek(buf, sizeof(buf)), Q_INT64_C(0)); } +void tst_QRingBuffer::usingInVector() +{ + QRingBuffer ringBuffer; + QVector buffers; + + ringBuffer.reserve(5); + buffers.append(ringBuffer); + QCOMPARE(buffers[0].size(), Q_INT64_C(5)); +} + void tst_QRingBuffer::sizeWhenReserved() { QRingBuffer ringBuffer; -- cgit v1.2.3