Index: net/base/upload_data_stream.cc |
diff --git a/net/base/upload_data_stream.cc b/net/base/upload_data_stream.cc |
index a7542778ff5a0bf93968eca29888c835bfa3f6e8..37e19aed313d210d622ab495643191020a0a63eb 100644 |
--- a/net/base/upload_data_stream.cc |
+++ b/net/base/upload_data_stream.cc |
@@ -109,18 +109,19 @@ void UploadDataStream::OnInitCompleted(int result) { |
} |
void UploadDataStream::OnReadCompleted(int result) { |
- DCHECK_GE(result, 0); |
DCHECK(initialized_successfully_); |
+ DCHECK(result != 0 || is_eof_); |
+ DCHECK_NE(ERR_IO_PENDING, result); |
- current_position_ += result; |
- if (!is_chunked_) { |
- DCHECK_LE(current_position_, total_size_); |
- if (current_position_ == total_size_) |
- is_eof_ = true; |
+ if (result > 0) { |
+ current_position_ += result; |
+ if (!is_chunked_) { |
+ DCHECK_LE(current_position_, total_size_); |
+ if (current_position_ == total_size_) |
+ is_eof_ = true; |
+ } |
} |
- DCHECK(result > 0 || is_eof_); |
- |
if (!callback_.is_null()) |
base::ResetAndReturn(&callback_).Run(result); |
} |