QNetworkDiskCache: Drop the file mmap-ing
Presumably the code at some point would do a QByteArray::fromRawData-style thing. But now it doesn't do that so the current code was a bit strange. It would map the content of the file to memory only to then copy the content into a QByteArray. Then it reparents the file to the QBuffer, keeping it alive even if its not needed. Fixes: QTBUG-92838 Change-Id: I88f8cd1b64e0fd13d08b5cc4df44661e216da340 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> (cherry picked from commit c254d73be63033497838807119cb9cb47ca6c1fa) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
parent
8e76959c57
commit
965ad9d181
@ -417,18 +417,7 @@ QIODevice *QNetworkDiskCache::data(const QUrl &url)
|
||||
buffer->setData(d->lastItem.data.data());
|
||||
} else {
|
||||
buffer.reset(new QBuffer);
|
||||
// ### verify that QFile uses the fd size and not the file name
|
||||
qint64 size = file->size() - file->pos();
|
||||
const uchar *p = nullptr;
|
||||
#if !defined(Q_OS_INTEGRITY)
|
||||
p = file->map(file->pos(), size);
|
||||
#endif
|
||||
if (p) {
|
||||
buffer->setData((const char *)p, size);
|
||||
file.take()->setParent(buffer.data());
|
||||
} else {
|
||||
buffer->setData(file->readAll());
|
||||
}
|
||||
buffer->setData(file->readAll());
|
||||
}
|
||||
}
|
||||
buffer->open(QBuffer::ReadOnly);
|
||||
|
Loading…
x
Reference in New Issue
Block a user