QNetworkDiskCache: Switch to unique_ptr in most cases

Because take() is deprecated, and these pointers are meant to leave the
scope in some branches.

Change-Id: I5432d91a28f4c5c8c17fadf7ce3bcd41716e216a
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
(cherry picked from commit 54730b31faa51fcb7973cc465ca981dd7c18e8b0)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
Mårten Nordheim 2021-04-15 17:51:55 +02:00 committed by Qt Cherry-pick Bot
parent 408a2e8d67
commit 3ec6e14771

View File

@ -53,6 +53,8 @@
#include <qcryptographichash.h>
#include <qdebug.h>
#include <memory>
#define CACHE_POSTFIX QLatin1String(".d")
#define PREPARED_SLASH QLatin1String("prepared/")
#define CACHE_VERSION 8
@ -196,7 +198,7 @@ QIODevice *QNetworkDiskCache::prepare(const QNetworkCacheMetaData &metaData)
break;
}
}
QScopedPointer<QCacheItem> cacheItem(new QCacheItem);
std::unique_ptr<QCacheItem> cacheItem = std::make_unique<QCacheItem>();
cacheItem->metaData = metaData;
QIODevice *device = nullptr;
@ -218,7 +220,7 @@ QIODevice *QNetworkDiskCache::prepare(const QNetworkCacheMetaData &metaData)
cacheItem->writeHeader(cacheItem->file);
device = cacheItem->file;
}
d->inserting[device] = cacheItem.take();
d->inserting[device] = cacheItem.release();
return device;
}
@ -395,7 +397,7 @@ QIODevice *QNetworkDiskCache::data(const QUrl &url)
qDebug() << "QNetworkDiskCache::data()" << url;
#endif
Q_D(QNetworkDiskCache);
QScopedPointer<QBuffer> buffer;
std::unique_ptr<QBuffer> buffer;
if (!url.isValid())
return nullptr;
if (d->lastItem.metaData.url() == url && d->lastItem.data.isOpen()) {
@ -421,7 +423,7 @@ QIODevice *QNetworkDiskCache::data(const QUrl &url)
}
}
buffer->open(QBuffer::ReadOnly);
return buffer.take();
return buffer.release();
}
/*!