Index: Source/platform/network/SocketStreamHandle.cpp |
diff --git a/Source/platform/network/SocketStreamHandle.cpp b/Source/platform/network/SocketStreamHandle.cpp |
index 88636faa9666a8195a40bb66be0d242926b0bbb0..38bc62dca5eef2e779f380e943a7403531f4ed14 100644 |
--- a/Source/platform/network/SocketStreamHandle.cpp |
+++ b/Source/platform/network/SocketStreamHandle.cpp |
@@ -194,8 +194,6 @@ bool SocketStreamHandle::send(const char* data, int length) |
return false; |
} |
m_buffer.append(data, length); |
- if (m_client) |
- m_client->didUpdateBufferedAmount(this, bufferedAmount()); |
return true; |
} |
int bytesWritten = 0; |
@@ -203,14 +201,14 @@ bool SocketStreamHandle::send(const char* data, int length) |
bytesWritten = sendInternal(data, length); |
if (bytesWritten < 0) |
return false; |
+ if (m_client) |
+ m_client->didConsumeBufferedAmount(this, bytesWritten); |
if (m_buffer.size() + length - bytesWritten > bufferSize) { |
// FIXME: report error to indicate that buffer has no more space. |
return false; |
} |
if (bytesWritten < length) { |
m_buffer.append(data + bytesWritten, length - bytesWritten); |
- if (m_client) |
- m_client->didUpdateBufferedAmount(this, bufferedAmount()); |
} |
return true; |
} |
@@ -259,9 +257,10 @@ bool SocketStreamHandle::sendPendingData() |
return false; |
ASSERT(m_buffer.size() - bytesWritten <= bufferSize); |
m_buffer.consume(bytesWritten); |
+ // FIXME: place didConsumeBufferedAmount out of do-while. |
+ if (m_client) |
+ m_client->didConsumeBufferedAmount(this, bytesWritten); |
} while (!pending && !m_buffer.isEmpty()); |
- if (m_client) |
- m_client->didUpdateBufferedAmount(this, bufferedAmount()); |
return true; |
} |