Index: chrome/browser/media_galleries/linux/mtp_device_task_helper_map_service.cc |
diff --git a/chrome/browser/media_galleries/linux/mtp_device_task_helper_map_service.cc b/chrome/browser/media_galleries/linux/mtp_device_task_helper_map_service.cc |
index ce923aa3fe79fed81b9bef093d302d7948df41af..dfa85e347e99ea30891e0cbc571c03da8e82b9f9 100644 |
--- a/chrome/browser/media_galleries/linux/mtp_device_task_helper_map_service.cc |
+++ b/chrome/browser/media_galleries/linux/mtp_device_task_helper_map_service.cc |
@@ -22,19 +22,25 @@ MTPDeviceTaskHelperMapService* MTPDeviceTaskHelperMapService::GetInstance() { |
} |
MTPDeviceTaskHelper* MTPDeviceTaskHelperMapService::CreateDeviceTaskHelper( |
- const std::string& storage_name) { |
+ const std::string& storage_name, |
+ const bool read_only) { |
DCHECK_CURRENTLY_ON(content::BrowserThread::UI); |
DCHECK(!storage_name.empty()); |
- DCHECK(!ContainsKey(task_helper_map_, storage_name)); |
+ const MTPDeviceTaskHelperKey key = |
+ GetMTPDeviceTaskHelperKey(storage_name, read_only); |
+ DCHECK(!ContainsKey(task_helper_map_, key)); |
MTPDeviceTaskHelper* task_helper = new MTPDeviceTaskHelper(); |
- task_helper_map_[storage_name] = task_helper; |
+ task_helper_map_[key] = task_helper; |
return task_helper; |
} |
void MTPDeviceTaskHelperMapService::DestroyDeviceTaskHelper( |
- const std::string& storage_name) { |
+ const std::string& storage_name, |
+ const bool read_only) { |
DCHECK_CURRENTLY_ON(content::BrowserThread::UI); |
- TaskHelperMap::iterator it = task_helper_map_.find(storage_name); |
+ const MTPDeviceTaskHelperKey key = |
+ GetMTPDeviceTaskHelperKey(storage_name, read_only); |
+ TaskHelperMap::iterator it = task_helper_map_.find(key); |
if (it == task_helper_map_.end()) |
return; |
delete it->second; |
@@ -42,13 +48,25 @@ void MTPDeviceTaskHelperMapService::DestroyDeviceTaskHelper( |
} |
MTPDeviceTaskHelper* MTPDeviceTaskHelperMapService::GetDeviceTaskHelper( |
- const std::string& storage_name) { |
+ const std::string& storage_name, |
+ const bool read_only) { |
DCHECK_CURRENTLY_ON(content::BrowserThread::UI); |
DCHECK(!storage_name.empty()); |
- TaskHelperMap::const_iterator it = task_helper_map_.find(storage_name); |
+ const MTPDeviceTaskHelperKey key = |
+ GetMTPDeviceTaskHelperKey(storage_name, read_only); |
+ TaskHelperMap::const_iterator it = task_helper_map_.find(key); |
return (it != task_helper_map_.end()) ? it->second : NULL; |
} |
+// static |
+MTPDeviceTaskHelperMapService::MTPDeviceTaskHelperKey |
+MTPDeviceTaskHelperMapService::GetMTPDeviceTaskHelperKey( |
+ const std::string& storage_name, |
+ const bool read_only) { |
+ return (read_only ? "ReadOnly" : "ReadWrite") + std::string("|") + |
+ storage_name; |
+} |
+ |
MTPDeviceTaskHelperMapService::MTPDeviceTaskHelperMapService() { |
} |