mirror of
https://bitbucket.org/smil3y/katie.git
synced 2025-02-23 18:32:55 +00:00
make QBuffer::bytesAvailable() work
upstream commit:
b4ce49287f
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
This commit is contained in:
parent
a956344dbf
commit
b74d450eb7
1 changed files with 4 additions and 15 deletions
|
@ -52,7 +52,6 @@ public:
|
||||||
|
|
||||||
QByteArray *buf;
|
QByteArray *buf;
|
||||||
QByteArray defaultBuf;
|
QByteArray defaultBuf;
|
||||||
qint64 ioIndex;
|
|
||||||
|
|
||||||
qint64 peek(char *data, qint64 maxSize) final;
|
qint64 peek(char *data, qint64 maxSize) final;
|
||||||
QByteArray peek(qint64 maxSize) final;
|
QByteArray peek(qint64 maxSize) final;
|
||||||
|
@ -151,14 +150,12 @@ QBuffer::QBuffer()
|
||||||
{
|
{
|
||||||
Q_D(QBuffer);
|
Q_D(QBuffer);
|
||||||
d->buf = &d->defaultBuf;
|
d->buf = &d->defaultBuf;
|
||||||
d->ioIndex = 0;
|
|
||||||
}
|
}
|
||||||
QBuffer::QBuffer(QByteArray *buf)
|
QBuffer::QBuffer(QByteArray *buf)
|
||||||
: QIODevice(*new QBufferPrivate)
|
: QIODevice(*new QBufferPrivate)
|
||||||
{
|
{
|
||||||
Q_D(QBuffer);
|
Q_D(QBuffer);
|
||||||
d->buf = buf ? buf : &d->defaultBuf;
|
d->buf = buf ? buf : &d->defaultBuf;
|
||||||
d->ioIndex = 0;
|
|
||||||
d->defaultBuf.clear();
|
d->defaultBuf.clear();
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
|
@ -174,7 +171,6 @@ QBuffer::QBuffer(QObject *parent)
|
||||||
{
|
{
|
||||||
Q_D(QBuffer);
|
Q_D(QBuffer);
|
||||||
d->buf = &d->defaultBuf;
|
d->buf = &d->defaultBuf;
|
||||||
d->ioIndex = 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
@ -200,7 +196,6 @@ QBuffer::QBuffer(QByteArray *byteArray, QObject *parent)
|
||||||
Q_D(QBuffer);
|
Q_D(QBuffer);
|
||||||
d->buf = byteArray ? byteArray : &d->defaultBuf;
|
d->buf = byteArray ? byteArray : &d->defaultBuf;
|
||||||
d->defaultBuf.clear();
|
d->defaultBuf.clear();
|
||||||
d->ioIndex = 0;
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -247,7 +242,6 @@ void QBuffer::setBuffer(QByteArray *byteArray)
|
||||||
d->buf = &d->defaultBuf;
|
d->buf = &d->defaultBuf;
|
||||||
}
|
}
|
||||||
d->defaultBuf.clear();
|
d->defaultBuf.clear();
|
||||||
d->ioIndex = 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
@ -306,7 +300,6 @@ void QBuffer::setData(const QByteArray &data)
|
||||||
}
|
}
|
||||||
Q_D(QBuffer);
|
Q_D(QBuffer);
|
||||||
*d->buf = data;
|
*d->buf = data;
|
||||||
d->ioIndex = 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
@ -333,7 +326,6 @@ bool QBuffer::open(OpenMode flags)
|
||||||
Q_D(QBuffer);
|
Q_D(QBuffer);
|
||||||
if ((flags & Truncate) == Truncate)
|
if ((flags & Truncate) == Truncate)
|
||||||
d->buf->resize(0);
|
d->buf->resize(0);
|
||||||
d->ioIndex = (flags & Append) == Append ? d->buf->size() : 0;
|
|
||||||
|
|
||||||
return QIODevice::open(flags);
|
return QIODevice::open(flags);
|
||||||
}
|
}
|
||||||
|
@ -367,7 +359,6 @@ bool QBuffer::seek(const qint64 pos)
|
||||||
qWarning("QBuffer::seek: Invalid pos: %lld", pos);
|
qWarning("QBuffer::seek: Invalid pos: %lld", pos);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
d->ioIndex = pos;
|
|
||||||
return QIODevice::seek(pos);
|
return QIODevice::seek(pos);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -389,10 +380,9 @@ bool QBuffer::canReadLine() const
|
||||||
qint64 QBuffer::readData(char *data, qint64 len)
|
qint64 QBuffer::readData(char *data, qint64 len)
|
||||||
{
|
{
|
||||||
Q_D(QBuffer);
|
Q_D(QBuffer);
|
||||||
if ((len = qMin(len, d->buf->size() - d->ioIndex)) <= 0)
|
if ((len = qMin(len, d->buf->size() - pos())) <= 0)
|
||||||
return qint64(0);
|
return qint64(0);
|
||||||
memcpy(data, d->buf->constData() + d->ioIndex, len);
|
memcpy(data, d->buf->constData() + pos(), len);
|
||||||
d->ioIndex += len;
|
|
||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -402,7 +392,7 @@ qint64 QBuffer::readData(char *data, qint64 len)
|
||||||
qint64 QBuffer::writeData(const char *data, qint64 len)
|
qint64 QBuffer::writeData(const char *data, qint64 len)
|
||||||
{
|
{
|
||||||
Q_D(QBuffer);
|
Q_D(QBuffer);
|
||||||
const qint64 extraBytes = d->ioIndex + len - d->buf->size();
|
const qint64 extraBytes = pos() + len - d->buf->size();
|
||||||
if (extraBytes > 0) { // overflow
|
if (extraBytes > 0) { // overflow
|
||||||
const qint64 newSize = d->buf->size() + extraBytes;
|
const qint64 newSize = d->buf->size() + extraBytes;
|
||||||
d->buf->resize(newSize);
|
d->buf->resize(newSize);
|
||||||
|
@ -412,8 +402,7 @@ qint64 QBuffer::writeData(const char *data, qint64 len)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
memcpy(d->buf->data() + d->ioIndex, data, len);
|
memcpy(d->buf->data() + pos(), data, len);
|
||||||
d->ioIndex += len;
|
|
||||||
|
|
||||||
#ifndef QT_NO_QOBJECT
|
#ifndef QT_NO_QOBJECT
|
||||||
d->writtenSinceLastEmit += len;
|
d->writtenSinceLastEmit += len;
|
||||||
|
|
Loading…
Add table
Reference in a new issue