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:
Mårten Nordheim 2021-04-15 17:31:23 +02:00 committed by Qt Cherry-pick Bot
parent 8e76959c57
commit 965ad9d181

View File

@ -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);