| Index: extensions/browser/api/serial/serial_connection.cc
|
| diff --git a/extensions/browser/api/serial/serial_connection.cc b/extensions/browser/api/serial/serial_connection.cc
|
| index 1f42318b35ecded25dc8e0dab9fbd980bae4c904..d4e6f5d7bd3b7a0c0f5deee993b6a43e909b8bb9 100644
|
| --- a/extensions/browser/api/serial/serial_connection.cc
|
| +++ b/extensions/browser/api/serial/serial_connection.cc
|
| @@ -5,10 +5,12 @@
|
| #include "extensions/browser/api/serial/serial_connection.h"
|
|
|
| #include <string>
|
| +#include <vector>
|
|
|
| #include "base/files/file_path.h"
|
| #include "base/lazy_instance.h"
|
| #include "base/message_loop/message_loop.h"
|
| +#include "base/stl_util.h"
|
| #include "extensions/browser/api/api_resource_manager.h"
|
| #include "extensions/common/api/serial.h"
|
|
|
| @@ -137,11 +139,11 @@ device::serial::StopBits ConvertStopBitsToMojo(
|
| class SendBuffer : public device::ReadOnlyBuffer {
|
| public:
|
| SendBuffer(
|
| - const std::string& data,
|
| + const std::vector<char>& data,
|
| const base::Callback<void(int, device::serial::SendError)>& callback)
|
| : data_(data), callback_(callback) {}
|
| ~SendBuffer() override {}
|
| - const char* GetData() override { return data_.c_str(); }
|
| + const char* GetData() override { return vector_as_array(&data_); }
|
| uint32_t GetSize() override { return static_cast<uint32_t>(data_.size()); }
|
| void Done(uint32_t bytes_read) override {
|
| callback_.Run(bytes_read, device::serial::SEND_ERROR_NONE);
|
| @@ -151,7 +153,7 @@ class SendBuffer : public device::ReadOnlyBuffer {
|
| }
|
|
|
| private:
|
| - const std::string data_;
|
| + const std::vector<char> data_;
|
| const base::Callback<void(int, device::serial::SendError)> callback_;
|
| };
|
|
|
| @@ -261,7 +263,7 @@ bool SerialConnection::Receive(const ReceiveCompleteCallback& callback) {
|
| return true;
|
| }
|
|
|
| -bool SerialConnection::Send(const std::string& data,
|
| +bool SerialConnection::Send(const std::vector<char>& data,
|
| const SendCompleteCallback& callback) {
|
| DCHECK_CURRENTLY_ON(BrowserThread::IO);
|
| if (!send_complete_.is_null())
|
| @@ -363,7 +365,8 @@ void SerialConnection::OnAsyncReadComplete(int bytes_read,
|
| ReceiveCompleteCallback callback = receive_complete_;
|
| receive_complete_.Reset();
|
| receive_timeout_task_.reset();
|
| - callback.Run(std::string(receive_buffer_->data(), bytes_read),
|
| + callback.Run(std::vector<char>(receive_buffer_->data(),
|
| + receive_buffer_->data() + bytes_read),
|
| ConvertReceiveErrorFromMojo(error));
|
| receive_buffer_ = NULL;
|
| }
|
|
|