summaryrefslogtreecommitdiff
path: root/chromium/services/device/hid/hid_connection_impl.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/services/device/hid/hid_connection_impl.cc')
-rw-r--r--chromium/services/device/hid/hid_connection_impl.cc11
1 files changed, 6 insertions, 5 deletions
diff --git a/chromium/services/device/hid/hid_connection_impl.cc b/chromium/services/device/hid/hid_connection_impl.cc
index 131eee19f57..508114a7626 100644
--- a/chromium/services/device/hid/hid_connection_impl.cc
+++ b/chromium/services/device/hid/hid_connection_impl.cc
@@ -54,11 +54,12 @@ void HidConnectionImpl::OnInputReport(
scoped_refptr<base::RefCountedBytes> buffer,
size_t size) {
DCHECK(client_);
- uint8_t report_id = buffer->data()[0];
- uint8_t* begin = &buffer->data()[1];
- uint8_t* end = buffer->data().data() + size;
- std::vector<uint8_t> data(begin, end);
- client_->OnInputReport(report_id, data);
+ DCHECK_GE(size, 1u);
+ std::vector<uint8_t> data;
+ if (size > 1) {
+ data = std::vector<uint8_t>(buffer->front() + 1, buffer->front() + size);
+ }
+ client_->OnInputReport(/*report_id=*/buffer->data()[0], data);
}
void HidConnectionImpl::Read(ReadCallback callback) {