summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMårten Nordheim <marten.nordheim@qt.io>2021-08-23 16:51:32 +0200
committerMårten Nordheim <marten.nordheim@qt.io>2021-08-26 14:32:26 +0200
commit0e9b75eab254be5ed684b762f7a7d0375cfd747b (patch)
tree4acded994efa0d3693017377c0e7e4fd9279d79a /src
parentd806ce6fc57cf402668ecf73aa8531be5f201f9c (diff)
QNetworkAccessBackend: emit readyRead less often
Once per iteration of the loop wouldn't theoretically be so bad if there was no overhead to emitting signals or reading from buffers. Change-Id: I0e424264fcc95eb2e2e5f8f908cf9ae3a7cc4b7e Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Diffstat (limited to 'src')
-rw-r--r--src/network/access/qnetworkreplyimpl.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/network/access/qnetworkreplyimpl.cpp b/src/network/access/qnetworkreplyimpl.cpp
index 39729dd13a..035610d6d6 100644
--- a/src/network/access/qnetworkreplyimpl.cpp
+++ b/src/network/access/qnetworkreplyimpl.cpp
@@ -734,6 +734,7 @@ void QNetworkReplyImplPrivate::readFromBackend()
if (backend->bytesAvailable())
emit q->readyRead();
} else {
+ bool anyBytesRead = false;
while (backend->bytesAvailable()
&& (!readBufferMaxSize || buffer.size() < readBufferMaxSize)) {
qint64 toRead = qMin(nextDownstreamBlockSize(), backend->bytesAvailable());
@@ -743,8 +744,10 @@ void QNetworkReplyImplPrivate::readFromBackend()
qint64 bytesRead = backend->read(data, toRead);
Q_ASSERT(bytesRead <= toRead);
buffer.chop(toRead - bytesRead);
- emit q->readyRead();
+ anyBytesRead |= bytesRead > 0;
}
+ if (anyBytesRead)
+ emit q->readyRead();
}
}