Allow to use QRingBuffer in containers

Make a private member mutable to enable default assignment operator.

Change-Id: I1216875c186ed800e07c6b41a5bae18c3b71b2fa
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
bb10
Alex Trotsenko 2015-08-22 13:43:13 +03:00
parent 7d257aab81
commit 771220ebc8
2 changed files with 13 additions and 1 deletions

View File

@ -135,7 +135,7 @@ private:
QList<QByteArray> buffers;
int head, tail;
int tailBuffer; // always buffers.size() - 1
const int basicBlockSize;
int basicBlockSize;
qint64 bufferSize;
};

View File

@ -34,12 +34,14 @@
#include <QtTest/QtTest>
#include <private/qringbuffer_p.h>
#include <qvector.h>
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<QRingBuffer> buffers;
ringBuffer.reserve(5);
buffers.append(ringBuffer);
QCOMPARE(buffers[0].size(), Q_INT64_C(5));
}
void tst_QRingBuffer::sizeWhenReserved()
{
QRingBuffer ringBuffer;