| Index: device/usb/mojo/device_impl.cc
|
| diff --git a/device/usb/mojo/device_impl.cc b/device/usb/mojo/device_impl.cc
|
| index 2a834fa5d2ec64dd7d5727893cbe501f19898ab5..a10d928189a9171042a608cb1331fb2ae370f21c 100644
|
| --- a/device/usb/mojo/device_impl.cc
|
| +++ b/device/usb/mojo/device_impl.cc
|
| @@ -32,7 +32,7 @@ scoped_refptr<net::IOBuffer> CreateTransferBuffer(size_t size) {
|
| std::max(static_cast<size_t>(1u), static_cast<size_t>(size)));
|
| }
|
|
|
| -void OnTransferIn(std::unique_ptr<Device::GenericTransferInCallback> callback,
|
| +void OnTransferIn(const Device::GenericTransferInCallback& callback,
|
| UsbTransferStatus status,
|
| scoped_refptr<net::IOBuffer> buffer,
|
| size_t buffer_size) {
|
| @@ -44,14 +44,15 @@ void OnTransferIn(std::unique_ptr<Device::GenericTransferInCallback> callback,
|
| data.resize(buffer_size);
|
| std::copy(buffer->data(), buffer->data() + buffer_size, data.begin());
|
| }
|
| - callback->Run(mojo::ConvertTo<TransferStatus>(status), data);
|
| +
|
| + callback.Run(mojo::ConvertTo<TransferStatus>(status), data);
|
| }
|
|
|
| -void OnTransferOut(std::unique_ptr<Device::GenericTransferOutCallback> callback,
|
| +void OnTransferOut(const Device::GenericTransferOutCallback& callback,
|
| UsbTransferStatus status,
|
| scoped_refptr<net::IOBuffer> buffer,
|
| size_t buffer_size) {
|
| - callback->Run(mojo::ConvertTo<TransferStatus>(status));
|
| + callback.Run(mojo::ConvertTo<TransferStatus>(status));
|
| }
|
|
|
| std::vector<IsochronousPacketPtr> BuildIsochronousPacketArray(
|
| @@ -69,7 +70,7 @@ std::vector<IsochronousPacketPtr> BuildIsochronousPacketArray(
|
| }
|
|
|
| void OnIsochronousTransferIn(
|
| - std::unique_ptr<Device::IsochronousTransferInCallback> callback,
|
| + const Device::IsochronousTransferInCallback& callback,
|
| scoped_refptr<net::IOBuffer> buffer,
|
| const std::vector<UsbDeviceHandle::IsochronousPacket>& packets) {
|
| std::vector<uint8_t> data;
|
| @@ -86,16 +87,15 @@ void OnIsochronousTransferIn(
|
| data.resize(buffer_size);
|
| std::copy(buffer->data(), buffer->data() + buffer_size, data.begin());
|
| }
|
| -
|
| - callback->Run(data,
|
| - mojo::ConvertTo<std::vector<IsochronousPacketPtr>>(packets));
|
| + callback.Run(data,
|
| + mojo::ConvertTo<std::vector<IsochronousPacketPtr>>(packets));
|
| }
|
|
|
| void OnIsochronousTransferOut(
|
| - std::unique_ptr<Device::IsochronousTransferOutCallback> callback,
|
| + const Device::IsochronousTransferOutCallback& callback,
|
| scoped_refptr<net::IOBuffer> buffer,
|
| const std::vector<UsbDeviceHandle::IsochronousPacket>& packets) {
|
| - callback->Run(mojo::ConvertTo<std::vector<IsochronousPacketPtr>>(packets));
|
| + callback.Run(mojo::ConvertTo<std::vector<IsochronousPacketPtr>>(packets));
|
| }
|
|
|
| } // namespace
|
| @@ -324,14 +324,12 @@ void DeviceImpl::ControlTransferIn(ControlTransferParamsPtr params,
|
|
|
| if (HasControlTransferPermission(params->recipient, params->index)) {
|
| scoped_refptr<net::IOBuffer> buffer = CreateTransferBuffer(length);
|
| - auto callback_ptr =
|
| - base::WrapUnique(new ControlTransferInCallback(callback));
|
| device_handle_->ControlTransfer(
|
| USB_DIRECTION_INBOUND,
|
| mojo::ConvertTo<UsbDeviceHandle::TransferRequestType>(params->type),
|
| mojo::ConvertTo<UsbDeviceHandle::TransferRecipient>(params->recipient),
|
| params->request, params->value, params->index, buffer, length, timeout,
|
| - base::Bind(&OnTransferIn, base::Passed(&callback_ptr)));
|
| + base::Bind(&OnTransferIn, callback));
|
| } else {
|
| callback.Run(TransferStatus::PERMISSION_DENIED, base::nullopt);
|
| }
|
| @@ -350,14 +348,12 @@ void DeviceImpl::ControlTransferOut(
|
| if (HasControlTransferPermission(params->recipient, params->index)) {
|
| scoped_refptr<net::IOBuffer> buffer = CreateTransferBuffer(data.size());
|
| std::copy(data.begin(), data.end(), buffer->data());
|
| - auto callback_ptr =
|
| - base::WrapUnique(new ControlTransferOutCallback(callback));
|
| device_handle_->ControlTransfer(
|
| USB_DIRECTION_OUTBOUND,
|
| mojo::ConvertTo<UsbDeviceHandle::TransferRequestType>(params->type),
|
| mojo::ConvertTo<UsbDeviceHandle::TransferRecipient>(params->recipient),
|
| params->request, params->value, params->index, buffer, data.size(),
|
| - timeout, base::Bind(&OnTransferOut, base::Passed(&callback_ptr)));
|
| + timeout, base::Bind(&OnTransferOut, callback));
|
| } else {
|
| callback.Run(TransferStatus::PERMISSION_DENIED);
|
| }
|
| @@ -372,12 +368,11 @@ void DeviceImpl::GenericTransferIn(uint8_t endpoint_number,
|
| return;
|
| }
|
|
|
| - auto callback_ptr = base::WrapUnique(new GenericTransferInCallback(callback));
|
| uint8_t endpoint_address = endpoint_number | 0x80;
|
| scoped_refptr<net::IOBuffer> buffer = CreateTransferBuffer(length);
|
| - device_handle_->GenericTransfer(
|
| - USB_DIRECTION_INBOUND, endpoint_address, buffer, length, timeout,
|
| - base::Bind(&OnTransferIn, base::Passed(&callback_ptr)));
|
| + device_handle_->GenericTransfer(USB_DIRECTION_INBOUND, endpoint_address,
|
| + buffer, length, timeout,
|
| + base::Bind(&OnTransferIn, callback));
|
| }
|
|
|
| void DeviceImpl::GenericTransferOut(
|
| @@ -390,14 +385,12 @@ void DeviceImpl::GenericTransferOut(
|
| return;
|
| }
|
|
|
| - auto callback_ptr =
|
| - base::WrapUnique(new GenericTransferOutCallback(callback));
|
| uint8_t endpoint_address = endpoint_number;
|
| scoped_refptr<net::IOBuffer> buffer = CreateTransferBuffer(data.size());
|
| std::copy(data.begin(), data.end(), buffer->data());
|
| - device_handle_->GenericTransfer(
|
| - USB_DIRECTION_OUTBOUND, endpoint_address, buffer, data.size(), timeout,
|
| - base::Bind(&OnTransferOut, base::Passed(&callback_ptr)));
|
| + device_handle_->GenericTransfer(USB_DIRECTION_OUTBOUND, endpoint_address,
|
| + buffer, data.size(), timeout,
|
| + base::Bind(&OnTransferOut, callback));
|
| }
|
|
|
| void DeviceImpl::IsochronousTransferIn(
|
| @@ -412,12 +405,10 @@ void DeviceImpl::IsochronousTransferIn(
|
| return;
|
| }
|
|
|
| - auto callback_ptr =
|
| - base::WrapUnique(new IsochronousTransferInCallback(callback));
|
| uint8_t endpoint_address = endpoint_number | 0x80;
|
| device_handle_->IsochronousTransferIn(
|
| endpoint_address, packet_lengths, timeout,
|
| - base::Bind(&OnIsochronousTransferIn, base::Passed(&callback_ptr)));
|
| + base::Bind(&OnIsochronousTransferIn, callback));
|
| }
|
|
|
| void DeviceImpl::IsochronousTransferOut(
|
| @@ -432,14 +423,12 @@ void DeviceImpl::IsochronousTransferOut(
|
| return;
|
| }
|
|
|
| - auto callback_ptr =
|
| - base::WrapUnique(new IsochronousTransferOutCallback(callback));
|
| uint8_t endpoint_address = endpoint_number;
|
| scoped_refptr<net::IOBuffer> buffer = CreateTransferBuffer(data.size());
|
| std::copy(data.begin(), data.end(), buffer->data());
|
| device_handle_->IsochronousTransferOut(
|
| endpoint_address, buffer, packet_lengths, timeout,
|
| - base::Bind(&OnIsochronousTransferOut, base::Passed(&callback_ptr)));
|
| + base::Bind(&OnIsochronousTransferOut, callback));
|
| }
|
|
|
| void DeviceImpl::OnDeviceRemoved(scoped_refptr<UsbDevice> device) {
|
|
|