summaryrefslogtreecommitdiffstats
path: root/src/network/access
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@theqtcompany.com>2015-04-15 09:09:23 +0200
committerLiang Qi <liang.qi@theqtcompany.com>2015-04-15 09:09:24 +0200
commit605617b5dce6ccd8826d07aabe2db781ae3aa9b4 (patch)
tree9b014020fce4f53e92442c6914e5bc6f6264e879 /src/network/access
parentd370878aa0510e1e51eb9014965f505e395f3f81 (diff)
parentd238f7e0190c49c0f07c24f2f4ef9a50577c389b (diff)
Merge remote-tracking branch 'origin/5.4' into 5.5
Diffstat (limited to 'src/network/access')
-rw-r--r--src/network/access/qnetworkreplynsurlconnectionimpl.mm13
1 files changed, 6 insertions, 7 deletions
diff --git a/src/network/access/qnetworkreplynsurlconnectionimpl.mm b/src/network/access/qnetworkreplynsurlconnectionimpl.mm
index 2c9ef0ac56..f4f494560c 100644
--- a/src/network/access/qnetworkreplynsurlconnectionimpl.mm
+++ b/src/network/access/qnetworkreplynsurlconnectionimpl.mm
@@ -287,7 +287,7 @@ void QNetworkReplyNSURLConnectionImpl::readyReadOutgoingData()
if ([response expectedContentLength] != NSURLResponseUnknownLength) {
QMetaObject::invokeMethod(replyprivate->q_func(), "downloadProgress", Qt::QueuedConnection,
- Q_ARG(qint64, qint64([responseData length])),
+ Q_ARG(qint64, qint64([responseData length] + replyprivate->bytesRead)),
Q_ARG(qint64, qint64([response expectedContentLength])));
}
@@ -418,9 +418,7 @@ qint64 QNetworkReplyNSURLConnectionImpl::bytesAvailable() const
{
Q_D(const QNetworkReplyNSURLConnectionImpl);
qint64 available = QNetworkReply::bytesAvailable() +
- [[d->urlConnectionDelegate responseData] length] -
- d->bytesRead;
-
+ [[d->urlConnectionDelegate responseData] length];
return available;
}
@@ -432,7 +430,7 @@ bool QNetworkReplyNSURLConnectionImpl::isSequential() const
qint64 QNetworkReplyNSURLConnectionImpl::size() const
{
Q_D(const QNetworkReplyNSURLConnectionImpl);
- return [[d->urlConnectionDelegate responseData] length];
+ return [[d->urlConnectionDelegate responseData] length] + d->bytesRead;
}
/*!
@@ -442,9 +440,10 @@ qint64 QNetworkReplyNSURLConnectionImpl::readData(char *data, qint64 maxlen)
{
Q_D(QNetworkReplyNSURLConnectionImpl);
qint64 dataSize = [[d->urlConnectionDelegate responseData] length];
- qint64 canRead = qMin(maxlen, dataSize - d->bytesRead);
+ qint64 canRead = qMin(maxlen, dataSize);
const char *sourceBase = static_cast<const char *>([[d->urlConnectionDelegate responseData] bytes]);
- memcpy(data, sourceBase + d->bytesRead, canRead);
+ memcpy(data, sourceBase, canRead);
+ [[d->urlConnectionDelegate responseData] replaceBytesInRange:NSMakeRange(0, canRead) withBytes:NULL length:0];
d->bytesRead += canRead;
return canRead;
}