Index: device/serial/serial_io_handler.cc |
diff --git a/device/serial/serial_io_handler.cc b/device/serial/serial_io_handler.cc |
index eb55e414e0053bd81354f619101fa52c1d62c0c3..ee6fab3095c6f60b1483df557376f77e42002391 100644 |
--- a/device/serial/serial_io_handler.cc |
+++ b/device/serial/serial_io_handler.cc |
@@ -114,12 +114,12 @@ void SerialIoHandler::ReadCompleted(int bytes_read, |
serial::ReceiveError error) { |
DCHECK(CalledOnValidThread()); |
DCHECK(IsReadPending()); |
+ scoped_ptr<WritableBuffer> pending_read_buffer = pending_read_buffer_.Pass(); |
if (error == serial::RECEIVE_ERROR_NONE) { |
- pending_read_buffer_->Done(bytes_read); |
+ pending_read_buffer->Done(bytes_read); |
} else { |
- pending_read_buffer_->DoneWithError(bytes_read, error); |
+ pending_read_buffer->DoneWithError(bytes_read, error); |
} |
- pending_read_buffer_.reset(); |
Release(); |
} |
@@ -127,12 +127,13 @@ void SerialIoHandler::WriteCompleted(int bytes_written, |
serial::SendError error) { |
DCHECK(CalledOnValidThread()); |
DCHECK(IsWritePending()); |
+ scoped_ptr<ReadOnlyBuffer> pending_write_buffer = |
+ pending_write_buffer_.Pass(); |
if (error == serial::SEND_ERROR_NONE) { |
- pending_write_buffer_->Done(bytes_written); |
+ pending_write_buffer->Done(bytes_written); |
} else { |
- pending_write_buffer_->DoneWithError(bytes_written, error); |
+ pending_write_buffer->DoneWithError(bytes_written, error); |
} |
- pending_write_buffer_.reset(); |
Release(); |
} |