summaryrefslogtreecommitdiffstats
path: root/src/network/access/qnetworkaccessdatabackend.cpp
diff options
context:
space:
mode:
authorMarkus Goetz <Markus.Goetz@nokia.com>2009-07-15 10:40:53 (GMT)
committerMarkus Goetz <Markus.Goetz@nokia.com>2009-07-17 11:36:17 (GMT)
commit8ab072aff0527d3ef3e44cf1ceba7dca985a6f94 (patch)
tree6a7a77a5dcea90c00ebc66c735c19af731b042f3 /src/network/access/qnetworkaccessdatabackend.cpp
parent430f93c3649aacea5d9ccab047f036027f0622ea (diff)
downloadQt-8ab072aff0527d3ef3e44cf1ceba7dca985a6f94.zip
Qt-8ab072aff0527d3ef3e44cf1ceba7dca985a6f94.tar.gz
Qt-8ab072aff0527d3ef3e44cf1ceba7dca985a6f94.tar.bz2
QNetworkAccessManager: HTTP download performance improvements
Better usage of move semantics with implicit sharing to avoid detaching (=malloc/memcpy). Also some other improvements. Download performance improvement is around 20% according to the httpDownloadPerformance autotest. Reviewed-by: Thiago Macieira
Diffstat (limited to 'src/network/access/qnetworkaccessdatabackend.cpp')
-rw-r--r--src/network/access/qnetworkaccessdatabackend.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/network/access/qnetworkaccessdatabackend.cpp b/src/network/access/qnetworkaccessdatabackend.cpp
index 609f0c5..4436cf4 100644
--- a/src/network/access/qnetworkaccessdatabackend.cpp
+++ b/src/network/access/qnetworkaccessdatabackend.cpp
@@ -117,7 +117,11 @@ void QNetworkAccessDataBackend::open()
setHeader(QNetworkRequest::ContentLengthHeader, payload.size());
emit metaDataChanged();
- writeDownstreamData(payload);
+ QByteDataBuffer list;
+ list.append(payload);
+ payload.clear(); // important because of implicit sharing!
+ writeDownstreamData(list);
+
finished();
return;
}