Chromium Code Reviews| Index: mojo/system/raw_channel_win.cc |
| diff --git a/mojo/system/raw_channel_win.cc b/mojo/system/raw_channel_win.cc |
| index 1090038782d8a4142ef028035b475d511bfdced9..da03f4e55a5ae9168ad7c7b4ce7355c94e02afc2 100644 |
| --- a/mojo/system/raw_channel_win.cc |
| +++ b/mojo/system/raw_channel_win.cc |
| @@ -371,14 +371,12 @@ RawChannel::IOResult RawChannelWin::Read(size_t* bytes_read) { |
| size_t bytes_to_read = 0; |
| read_buffer()->GetBuffer(&buffer, &bytes_to_read); |
| - DWORD bytes_read_dword = 0; |
| BOOL result = ReadFile(io_handler_->handle(), |
| buffer, |
| static_cast<DWORD>(bytes_to_read), |
| - &bytes_read_dword, |
| + NULL, |
|
viettrungluu
2014/09/30 19:07:40
nullptr
|
| &io_handler_->read_context()->overlapped); |
| if (!result) { |
| - DCHECK_EQ(bytes_read_dword, 0u); |
| DWORD error = GetLastError(); |
| if (error == ERROR_BROKEN_PIPE) |
| return IO_FAILED_SHUTDOWN; |
| @@ -389,6 +387,13 @@ RawChannel::IOResult RawChannelWin::Read(size_t* bytes_read) { |
| } |
| if (result && skip_completion_port_on_success_) { |
| + DWORD bytes_read_dword = 0; |
| + BOOL get_size_result = |
| + GetOverlappedResult(io_handler_->handle(), |
| + &io_handler_->read_context()->overlapped, |
| + &bytes_read_dword, |
| + FALSE); |
| + DPCHECK(get_size_result); |
| *bytes_read = bytes_read_dword; |
| return IO_SUCCEEDED; |
| } |