Commit c2dc1ac6 authored by reillyg's avatar reillyg Committed by Commit bot

Remove wrapping of mojo::Callbacks in std::unique_ptr.

This wrapping was added in r355704 because at the time mojo::Callbacks
did not like being freed on arbitrary threads, which would happen if
they were passed to //device/usb APIs. This is no longer an issue so the
wrapping can be removed.

BUG=None

Review-Url: https://codereview.chromium.org/2236683002
Cr-Commit-Position: refs/heads/master@{#412582}
parent 0f4b93ce
...@@ -32,7 +32,7 @@ scoped_refptr<net::IOBuffer> CreateTransferBuffer(size_t size) { ...@@ -32,7 +32,7 @@ scoped_refptr<net::IOBuffer> CreateTransferBuffer(size_t size) {
std::max(static_cast<size_t>(1u), static_cast<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, UsbTransferStatus status,
scoped_refptr<net::IOBuffer> buffer, scoped_refptr<net::IOBuffer> buffer,
size_t buffer_size) { size_t buffer_size) {
...@@ -44,14 +44,15 @@ void OnTransferIn(std::unique_ptr<Device::GenericTransferInCallback> callback, ...@@ -44,14 +44,15 @@ void OnTransferIn(std::unique_ptr<Device::GenericTransferInCallback> callback,
data.resize(buffer_size); data.resize(buffer_size);
std::copy(buffer->data(), buffer->data() + buffer_size, data.begin()); 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, UsbTransferStatus status,
scoped_refptr<net::IOBuffer> buffer, scoped_refptr<net::IOBuffer> buffer,
size_t buffer_size) { size_t buffer_size) {
callback->Run(mojo::ConvertTo<TransferStatus>(status)); callback.Run(mojo::ConvertTo<TransferStatus>(status));
} }
std::vector<IsochronousPacketPtr> BuildIsochronousPacketArray( std::vector<IsochronousPacketPtr> BuildIsochronousPacketArray(
...@@ -69,7 +70,7 @@ std::vector<IsochronousPacketPtr> BuildIsochronousPacketArray( ...@@ -69,7 +70,7 @@ std::vector<IsochronousPacketPtr> BuildIsochronousPacketArray(
} }
void OnIsochronousTransferIn( void OnIsochronousTransferIn(
std::unique_ptr<Device::IsochronousTransferInCallback> callback, const Device::IsochronousTransferInCallback& callback,
scoped_refptr<net::IOBuffer> buffer, scoped_refptr<net::IOBuffer> buffer,
const std::vector<UsbDeviceHandle::IsochronousPacket>& packets) { const std::vector<UsbDeviceHandle::IsochronousPacket>& packets) {
std::vector<uint8_t> data; std::vector<uint8_t> data;
...@@ -86,16 +87,15 @@ void OnIsochronousTransferIn( ...@@ -86,16 +87,15 @@ void OnIsochronousTransferIn(
data.resize(buffer_size); data.resize(buffer_size);
std::copy(buffer->data(), buffer->data() + buffer_size, data.begin()); std::copy(buffer->data(), buffer->data() + buffer_size, data.begin());
} }
callback.Run(data,
callback->Run(data, mojo::ConvertTo<std::vector<IsochronousPacketPtr>>(packets));
mojo::ConvertTo<std::vector<IsochronousPacketPtr>>(packets));
} }
void OnIsochronousTransferOut( void OnIsochronousTransferOut(
std::unique_ptr<Device::IsochronousTransferOutCallback> callback, const Device::IsochronousTransferOutCallback& callback,
scoped_refptr<net::IOBuffer> buffer, scoped_refptr<net::IOBuffer> buffer,
const std::vector<UsbDeviceHandle::IsochronousPacket>& packets) { const std::vector<UsbDeviceHandle::IsochronousPacket>& packets) {
callback->Run(mojo::ConvertTo<std::vector<IsochronousPacketPtr>>(packets)); callback.Run(mojo::ConvertTo<std::vector<IsochronousPacketPtr>>(packets));
} }
} // namespace } // namespace
...@@ -324,14 +324,12 @@ void DeviceImpl::ControlTransferIn(ControlTransferParamsPtr params, ...@@ -324,14 +324,12 @@ void DeviceImpl::ControlTransferIn(ControlTransferParamsPtr params,
if (HasControlTransferPermission(params->recipient, params->index)) { if (HasControlTransferPermission(params->recipient, params->index)) {
scoped_refptr<net::IOBuffer> buffer = CreateTransferBuffer(length); scoped_refptr<net::IOBuffer> buffer = CreateTransferBuffer(length);
auto callback_ptr =
base::WrapUnique(new ControlTransferInCallback(callback));
device_handle_->ControlTransfer( device_handle_->ControlTransfer(
USB_DIRECTION_INBOUND, USB_DIRECTION_INBOUND,
mojo::ConvertTo<UsbDeviceHandle::TransferRequestType>(params->type), mojo::ConvertTo<UsbDeviceHandle::TransferRequestType>(params->type),
mojo::ConvertTo<UsbDeviceHandle::TransferRecipient>(params->recipient), mojo::ConvertTo<UsbDeviceHandle::TransferRecipient>(params->recipient),
params->request, params->value, params->index, buffer, length, timeout, params->request, params->value, params->index, buffer, length, timeout,
base::Bind(&OnTransferIn, base::Passed(&callback_ptr))); base::Bind(&OnTransferIn, callback));
} else { } else {
callback.Run(TransferStatus::PERMISSION_DENIED, base::nullopt); callback.Run(TransferStatus::PERMISSION_DENIED, base::nullopt);
} }
...@@ -350,14 +348,12 @@ void DeviceImpl::ControlTransferOut( ...@@ -350,14 +348,12 @@ void DeviceImpl::ControlTransferOut(
if (HasControlTransferPermission(params->recipient, params->index)) { if (HasControlTransferPermission(params->recipient, params->index)) {
scoped_refptr<net::IOBuffer> buffer = CreateTransferBuffer(data.size()); scoped_refptr<net::IOBuffer> buffer = CreateTransferBuffer(data.size());
std::copy(data.begin(), data.end(), buffer->data()); std::copy(data.begin(), data.end(), buffer->data());
auto callback_ptr =
base::WrapUnique(new ControlTransferOutCallback(callback));
device_handle_->ControlTransfer( device_handle_->ControlTransfer(
USB_DIRECTION_OUTBOUND, USB_DIRECTION_OUTBOUND,
mojo::ConvertTo<UsbDeviceHandle::TransferRequestType>(params->type), mojo::ConvertTo<UsbDeviceHandle::TransferRequestType>(params->type),
mojo::ConvertTo<UsbDeviceHandle::TransferRecipient>(params->recipient), mojo::ConvertTo<UsbDeviceHandle::TransferRecipient>(params->recipient),
params->request, params->value, params->index, buffer, data.size(), params->request, params->value, params->index, buffer, data.size(),
timeout, base::Bind(&OnTransferOut, base::Passed(&callback_ptr))); timeout, base::Bind(&OnTransferOut, callback));
} else { } else {
callback.Run(TransferStatus::PERMISSION_DENIED); callback.Run(TransferStatus::PERMISSION_DENIED);
} }
...@@ -372,12 +368,11 @@ void DeviceImpl::GenericTransferIn(uint8_t endpoint_number, ...@@ -372,12 +368,11 @@ void DeviceImpl::GenericTransferIn(uint8_t endpoint_number,
return; return;
} }
auto callback_ptr = base::WrapUnique(new GenericTransferInCallback(callback));
uint8_t endpoint_address = endpoint_number | 0x80; uint8_t endpoint_address = endpoint_number | 0x80;
scoped_refptr<net::IOBuffer> buffer = CreateTransferBuffer(length); scoped_refptr<net::IOBuffer> buffer = CreateTransferBuffer(length);
device_handle_->GenericTransfer( device_handle_->GenericTransfer(USB_DIRECTION_INBOUND, endpoint_address,
USB_DIRECTION_INBOUND, endpoint_address, buffer, length, timeout, buffer, length, timeout,
base::Bind(&OnTransferIn, base::Passed(&callback_ptr))); base::Bind(&OnTransferIn, callback));
} }
void DeviceImpl::GenericTransferOut( void DeviceImpl::GenericTransferOut(
...@@ -390,14 +385,12 @@ void DeviceImpl::GenericTransferOut( ...@@ -390,14 +385,12 @@ void DeviceImpl::GenericTransferOut(
return; return;
} }
auto callback_ptr =
base::WrapUnique(new GenericTransferOutCallback(callback));
uint8_t endpoint_address = endpoint_number; uint8_t endpoint_address = endpoint_number;
scoped_refptr<net::IOBuffer> buffer = CreateTransferBuffer(data.size()); scoped_refptr<net::IOBuffer> buffer = CreateTransferBuffer(data.size());
std::copy(data.begin(), data.end(), buffer->data()); std::copy(data.begin(), data.end(), buffer->data());
device_handle_->GenericTransfer( device_handle_->GenericTransfer(USB_DIRECTION_OUTBOUND, endpoint_address,
USB_DIRECTION_OUTBOUND, endpoint_address, buffer, data.size(), timeout, buffer, data.size(), timeout,
base::Bind(&OnTransferOut, base::Passed(&callback_ptr))); base::Bind(&OnTransferOut, callback));
} }
void DeviceImpl::IsochronousTransferIn( void DeviceImpl::IsochronousTransferIn(
...@@ -412,12 +405,10 @@ void DeviceImpl::IsochronousTransferIn( ...@@ -412,12 +405,10 @@ void DeviceImpl::IsochronousTransferIn(
return; return;
} }
auto callback_ptr =
base::WrapUnique(new IsochronousTransferInCallback(callback));
uint8_t endpoint_address = endpoint_number | 0x80; uint8_t endpoint_address = endpoint_number | 0x80;
device_handle_->IsochronousTransferIn( device_handle_->IsochronousTransferIn(
endpoint_address, packet_lengths, timeout, endpoint_address, packet_lengths, timeout,
base::Bind(&OnIsochronousTransferIn, base::Passed(&callback_ptr))); base::Bind(&OnIsochronousTransferIn, callback));
} }
void DeviceImpl::IsochronousTransferOut( void DeviceImpl::IsochronousTransferOut(
...@@ -432,14 +423,12 @@ void DeviceImpl::IsochronousTransferOut( ...@@ -432,14 +423,12 @@ void DeviceImpl::IsochronousTransferOut(
return; return;
} }
auto callback_ptr =
base::WrapUnique(new IsochronousTransferOutCallback(callback));
uint8_t endpoint_address = endpoint_number; uint8_t endpoint_address = endpoint_number;
scoped_refptr<net::IOBuffer> buffer = CreateTransferBuffer(data.size()); scoped_refptr<net::IOBuffer> buffer = CreateTransferBuffer(data.size());
std::copy(data.begin(), data.end(), buffer->data()); std::copy(data.begin(), data.end(), buffer->data());
device_handle_->IsochronousTransferOut( device_handle_->IsochronousTransferOut(
endpoint_address, buffer, packet_lengths, timeout, endpoint_address, buffer, packet_lengths, timeout,
base::Bind(&OnIsochronousTransferOut, base::Passed(&callback_ptr))); base::Bind(&OnIsochronousTransferOut, callback));
} }
void DeviceImpl::OnDeviceRemoved(scoped_refptr<UsbDevice> device) { void DeviceImpl::OnDeviceRemoved(scoped_refptr<UsbDevice> device) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment