diff options
author | Liang Qi <liang.qi@theqtcompany.com> | 2015-04-15 09:09:23 +0200 |
---|---|---|
committer | Liang Qi <liang.qi@theqtcompany.com> | 2015-04-15 09:09:24 +0200 |
commit | 605617b5dce6ccd8826d07aabe2db781ae3aa9b4 (patch) | |
tree | 9b014020fce4f53e92442c6914e5bc6f6264e879 /src/network/access | |
parent | d370878aa0510e1e51eb9014965f505e395f3f81 (diff) | |
parent | d238f7e0190c49c0f07c24f2f4ef9a50577c389b (diff) |
Merge remote-tracking branch 'origin/5.4' into 5.5
Change-Id: I004854a25ebbf12b1fda88900162fe7878716c58
Diffstat (limited to 'src/network/access')
-rw-r--r-- | src/network/access/qnetworkreplynsurlconnectionimpl.mm | 13 |
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; } |