QNetworkDiskCache: Switch to unique_ptr in most cases

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

Pick-to: 6.1
Change-Id: I5432d91a28f4c5c8c17fadf7ce3bcd41716e216a
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
This commit is contained in:
Mårten Nordheim 2021-04-15 17:51:55 +02:00
parent c254d73be6
commit 54730b31fa
1 changed files with 6 additions and 4 deletions

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();
}
/*!