Deduplicate a condition to make clear that several cases ask it.
QNetworkAccessManager::createRequest() had three checks relevant only to GET and HEAD requests; rather than testing for this in each of the cases, test for it once and skip all three if it fails. Tidied up the residue of conditionals in the process. Change-Id: I7baee8067a03afdc7cb0a77f1a50759dc4233843 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>bb10
parent
6a2892bdef
commit
65f88f3a5d
|
|
@ -1123,38 +1123,36 @@ QNetworkReply *QNetworkAccessManager::createRequest(QNetworkAccessManager::Opera
|
|||
|
||||
// fast path for GET on file:// URLs
|
||||
// The QNetworkAccessFileBackend will right now only be used for PUT
|
||||
if ((op == QNetworkAccessManager::GetOperation || op == QNetworkAccessManager::HeadOperation)
|
||||
&& (isLocalFile || scheme == QLatin1String("qrc")
|
||||
#if defined(Q_OS_ANDROID)
|
||||
if (op == QNetworkAccessManager::GetOperation
|
||||
|| op == QNetworkAccessManager::HeadOperation) {
|
||||
if (isLocalFile
|
||||
#ifdef Q_OS_ANDROID
|
||||
|| scheme == QLatin1String("assets")
|
||||
#endif
|
||||
)) {
|
||||
return new QNetworkReplyFileImpl(this, req, op);
|
||||
}
|
||||
|| scheme == QLatin1String("qrc")) {
|
||||
return new QNetworkReplyFileImpl(this, req, op);
|
||||
}
|
||||
|
||||
if ((op == QNetworkAccessManager::GetOperation || op == QNetworkAccessManager::HeadOperation)
|
||||
&& scheme == QLatin1String("data")) {
|
||||
return new QNetworkReplyDataImpl(this, req, op);
|
||||
}
|
||||
if (scheme == QLatin1String("data"))
|
||||
return new QNetworkReplyDataImpl(this, req, op);
|
||||
|
||||
// A request with QNetworkRequest::AlwaysCache does not need any bearer management
|
||||
QNetworkRequest::CacheLoadControl mode =
|
||||
static_cast<QNetworkRequest::CacheLoadControl>(
|
||||
req.attribute(QNetworkRequest::CacheLoadControlAttribute,
|
||||
// A request with QNetworkRequest::AlwaysCache does not need any bearer management
|
||||
QNetworkRequest::CacheLoadControl mode =
|
||||
static_cast<QNetworkRequest::CacheLoadControl>(
|
||||
req.attribute(QNetworkRequest::CacheLoadControlAttribute,
|
||||
QNetworkRequest::PreferNetwork).toInt());
|
||||
if (mode == QNetworkRequest::AlwaysCache
|
||||
&& (op == QNetworkAccessManager::GetOperation
|
||||
|| op == QNetworkAccessManager::HeadOperation)) {
|
||||
// FIXME Implement a QNetworkReplyCacheImpl instead, see QTBUG-15106
|
||||
QNetworkReplyImpl *reply = new QNetworkReplyImpl(this);
|
||||
QNetworkReplyImplPrivate *priv = reply->d_func();
|
||||
priv->manager = this;
|
||||
priv->backend = new QNetworkAccessCacheBackend();
|
||||
priv->backend->manager = this->d_func();
|
||||
priv->backend->setParent(reply);
|
||||
priv->backend->reply = priv;
|
||||
priv->setup(op, req, outgoingData);
|
||||
return reply;
|
||||
if (mode == QNetworkRequest::AlwaysCache) {
|
||||
// FIXME Implement a QNetworkReplyCacheImpl instead, see QTBUG-15106
|
||||
QNetworkReplyImpl *reply = new QNetworkReplyImpl(this);
|
||||
QNetworkReplyImplPrivate *priv = reply->d_func();
|
||||
priv->manager = this;
|
||||
priv->backend = new QNetworkAccessCacheBackend();
|
||||
priv->backend->manager = this->d_func();
|
||||
priv->backend->setParent(reply);
|
||||
priv->backend->reply = priv;
|
||||
priv->setup(op, req, outgoingData);
|
||||
return reply;
|
||||
}
|
||||
}
|
||||
|
||||
#ifndef QT_NO_BEARERMANAGEMENT
|
||||
|
|
|
|||
Loading…
Reference in New Issue