From 06363de75bd0fc71d29f9048c6d1d1f4ee930f7b Mon Sep 17 00:00:00 2001 From: codestation Date: Thu, 3 Apr 2014 15:22:19 -0430 Subject: [PATCH] Update httpdownloader class. --- src/httpdownloader.cpp | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/httpdownloader.cpp b/src/httpdownloader.cpp index 0fe0a4c..c0f468d 100644 --- a/src/httpdownloader.cpp +++ b/src/httpdownloader.cpp @@ -83,32 +83,32 @@ void HTTPDownloader::readyRead() dataRead.lock(); int currOffset = bufferSize; + if(bufferSize == 0) { bufferSize = reply->bytesAvailable(); + if(firstRead) { bufferSize += 8; currOffset += 8; - } - // start with a 16KiB buffer - buffer = (char *)malloc(16384 + 2048); - if(firstRead) { + + // start with a 16KiB buffer + buffer = (char *)malloc(16384); *(uint64_t *)buffer = m_contentLength; firstRead = false; } } else { bufferSize += reply->bytesAvailable(); - if(bufferSize > 16384 + 2048) { + + if(bufferSize > 16384) { buffer = (char *)realloc(buffer, bufferSize); } } - reply->read(buffer + currOffset, reply->bytesAvailable()); + reply->read(buffer + currOffset, reply->bytesAvailable()); downloadLeft -= bufferSize; - //qDebug("bufferSize: %li, downloadLeft: %li", bufferSize, downloadLeft); - - if(bufferSize > 16384 || downloadLeft == 0) { + if(bufferSize >= 16384 || downloadLeft == 0) { dataAvailable.unlock(); } dataRead.unlock();