Index: chrome/browser/chromeos/gdata/gdata_directory_service.cc |
=================================================================== |
--- chrome/browser/chromeos/gdata/gdata_directory_service.cc (revision 151875) |
+++ chrome/browser/chromeos/gdata/gdata_directory_service.cc (working copy) |
@@ -5,6 +5,7 @@ |
#include "chrome/browser/chromeos/gdata/gdata_directory_service.h" |
#include <leveldb/db.h> |
+#include <utility> |
#include "base/message_loop_proxy.h" |
#include "base/string_number_conversions.h" |
@@ -235,7 +236,7 @@ |
// Note that children have a reference to root_, |
// so we need to delete them here. |
root_->RemoveChildren(); |
- RemoveEntryFromResourceMap(root_.get()); |
+ RemoveEntryFromResourceMap(root_->resource_id()); |
DCHECK(resource_map_.empty()); |
resource_map_.clear(); |
root_.reset(); |
@@ -297,14 +298,19 @@ |
} |
void GDataDirectoryService::AddEntryToResourceMap(GDataEntry* entry) { |
- // GDataFileSystem has already locked. |
DVLOG(1) << "AddEntryToResourceMap " << entry->resource_id(); |
- resource_map_.insert(std::make_pair(entry->resource_id(), entry)); |
+ DCHECK(!entry->resource_id().empty()); |
+ std::pair<ResourceMap::iterator, bool> ret = |
+ resource_map_.insert(std::make_pair(entry->resource_id(), entry)); |
+ DCHECK(ret.second); // resource_id did not previously exist in the map. |
} |
-void GDataDirectoryService::RemoveEntryFromResourceMap(GDataEntry* entry) { |
- // GDataFileSystem has already locked. |
- resource_map_.erase(entry->resource_id()); |
+void GDataDirectoryService::RemoveEntryFromResourceMap( |
+ const std::string& resource_id) { |
+ DVLOG(1) << "RemoveEntryFromResourceMap " << resource_id; |
+ DCHECK(!resource_id.empty()); |
+ size_t ret = resource_map_.erase(resource_id); |
+ DCHECK_EQ(1u, ret); // resource_id was found in the map. |
} |
GDataEntry* GDataDirectoryService::FindEntryByPathSync( |
@@ -469,6 +475,7 @@ |
return; |
} |
+ DVLOG(1) << "RefreshDirectoryInternal"; |
directory->RemoveChildFiles(); |
// Add files from file_map. |
for (ResourceMap::const_iterator it = file_map.begin(); |