summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAhmad Samir <[email protected]>2025-05-16 16:59:44 +0300
committerMarc Mutz <[email protected]>2025-05-22 07:14:30 +0000
commitb9c92154062a1d6c0f62860a9fa775cba6bac9ef (patch)
tree08f77006e94701ce297522d5f300b2935437b4df
parent66803a863ec58852617978733790a45a7c86e0fc (diff)
QNetworkDiskCache: construct a QFile on the stack
The QFile object is only used in its scope: - `remove(url)` indirectly removes the file from the disk cache (by constructing another QFile) then immediately returns - if the file could be read, all the read data is stored in a QBuffer, the QFile isn't needed after that Amends c254d73be63033497838807119cb9cb47ca6c1fa. Pick-to: 6.9 Change-Id: I714dcc619b8f5ed887f111395967d674ec875d6e Reviewed-by: Marc Mutz <[email protected]> Reviewed-by: MÃ¥rten Nordheim <[email protected]>
-rw-r--r--src/network/access/qnetworkdiskcache.cpp11
1 files changed, 5 insertions, 6 deletions
diff --git a/src/network/access/qnetworkdiskcache.cpp b/src/network/access/qnetworkdiskcache.cpp
index 69e35cea279..0f973b02b98 100644
--- a/src/network/access/qnetworkdiskcache.cpp
+++ b/src/network/access/qnetworkdiskcache.cpp
@@ -6,7 +6,6 @@
#include "qnetworkdiskcache.h"
#include "qnetworkdiskcache_p.h"
-#include "QtCore/qscopedpointer.h"
#include <qfile.h>
#include <qdir.h>
@@ -359,12 +358,12 @@ QIODevice *QNetworkDiskCache::data(const QUrl &url)
buffer.reset(new QBuffer);
buffer->setData(d->lastItem.data.data());
} else {
- QScopedPointer<QFile> file(new QFile(d->cacheFileName(url)));
- if (!file->open(QFile::ReadOnly | QIODevice::Unbuffered))
+ QFile file(d->cacheFileName(url));
+ if (!file.open(QFile::ReadOnly | QIODevice::Unbuffered))
return nullptr;
- if (!d->lastItem.read(file.data(), true)) {
- file->close();
+ if (!d->lastItem.read(&file, true)) {
+ file.close(); // On Windows the file can't be removed if it's open
remove(url);
return nullptr;
}
@@ -374,7 +373,7 @@ QIODevice *QNetworkDiskCache::data(const QUrl &url)
buffer->setData(d->lastItem.data.data());
} else {
buffer.reset(new QBuffer);
- buffer->setData(file->readAll());
+ buffer->setData(file.readAll());
}
}
buffer->open(QBuffer::ReadOnly);