From 0e9b75eab254be5ed684b762f7a7d0375cfd747b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A5rten=20Nordheim?= Date: Mon, 23 Aug 2021 16:51:32 +0200 Subject: [PATCH] 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 Reviewed-by: Edward Welbourne --- src/network/access/qnetworkreplyimpl.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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(); } }