| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/media_galleries/win/mtp_device_operations_util.h" | 5 #include "chrome/browser/media_galleries/win/mtp_device_operations_util.h" |
| 6 | 6 |
| 7 #include <portabledevice.h> | 7 #include <portabledevice.h> |
| 8 | 8 |
| 9 #include <algorithm> | 9 #include <algorithm> |
| 10 | 10 |
| (...skipping 368 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 379 // |optimal_transfer_size|). This indicates the end of the stream has been | 379 // |optimal_transfer_size|). This indicates the end of the stream has been |
| 380 // reached. | 380 // reached. |
| 381 if (FAILED(hr)) | 381 if (FAILED(hr)) |
| 382 return 0U; | 382 return 0U; |
| 383 DCHECK_GT(bytes_read, 0U); | 383 DCHECK_GT(bytes_read, 0U); |
| 384 CHECK_LE(bytes_read, buffer.length()); | 384 CHECK_LE(bytes_read, buffer.length()); |
| 385 int data_len = | 385 int data_len = |
| 386 base::checked_cast<int>( | 386 base::checked_cast<int>( |
| 387 std::min(bytes_read, | 387 std::min(bytes_read, |
| 388 base::checked_cast<DWORD>(buffer.length()))); | 388 base::checked_cast<DWORD>(buffer.length()))); |
| 389 if (file_util::AppendToFile(local_path, buffer.c_str(), data_len) != data_len) | 389 if (base::AppendToFile(local_path, buffer.c_str(), data_len) != data_len) |
| 390 return 0U; | 390 return 0U; |
| 391 return data_len; | 391 return data_len; |
| 392 } | 392 } |
| 393 | 393 |
| 394 base::string16 GetObjectIdFromName(IPortableDevice* device, | 394 base::string16 GetObjectIdFromName(IPortableDevice* device, |
| 395 const base::string16& parent_id, | 395 const base::string16& parent_id, |
| 396 const base::string16& object_name) { | 396 const base::string16& object_name) { |
| 397 MTPDeviceObjectEntries object_entries; | 397 MTPDeviceObjectEntries object_entries; |
| 398 if (!GetMTPDeviceObjectEntries(device, parent_id, object_name, | 398 if (!GetMTPDeviceObjectEntries(device, parent_id, object_name, |
| 399 &object_entries) || | 399 &object_entries) || |
| 400 object_entries.empty()) | 400 object_entries.empty()) |
| 401 return base::string16(); | 401 return base::string16(); |
| 402 // TODO(thestig): This DCHECK can fail. Multiple MTP objects can have | 402 // TODO(thestig): This DCHECK can fail. Multiple MTP objects can have |
| 403 // the same name. Handle the situation gracefully. Refer to crbug.com/169930 | 403 // the same name. Handle the situation gracefully. Refer to crbug.com/169930 |
| 404 // for more details. | 404 // for more details. |
| 405 DCHECK_EQ(1U, object_entries.size()); | 405 DCHECK_EQ(1U, object_entries.size()); |
| 406 return object_entries[0].object_id; | 406 return object_entries[0].object_id; |
| 407 } | 407 } |
| 408 | 408 |
| 409 } // namespace media_transfer_protocol | 409 } // namespace media_transfer_protocol |
| OLD | NEW |