Chromium Code Reviews| Index: chrome/browser/chromeos/drive/drive_resource_metadata.cc |
| diff --git a/chrome/browser/chromeos/drive/drive_resource_metadata.cc b/chrome/browser/chromeos/drive/drive_resource_metadata.cc |
| index 5b2b84f66dca43932290a1600d0b784fbd14c7b3..8ad6606bc1d38b8fe218ecea933dd23dcbacf439 100644 |
| --- a/chrome/browser/chromeos/drive/drive_resource_metadata.cc |
| +++ b/chrome/browser/chromeos/drive/drive_resource_metadata.cc |
| @@ -744,48 +744,20 @@ void DriveResourceMetadata::DetachEntryFromDirectory( |
| void DriveResourceMetadata::RemoveDirectoryChildren( |
| DriveEntryProto* directory) { |
| - RemoveDirectoryChildFiles(directory); |
| - RemoveDirectoryChildDirectories(directory); |
| - DCHECK(child_maps_[directory->resource_id()].empty()); |
| - child_maps_.erase(directory->resource_id()); |
| -} |
| - |
| -void DriveResourceMetadata::RemoveDirectoryChildFiles( |
| - DriveEntryProto* directory) { |
| DCHECK(directory->file_info().is_directory()); |
| DriveResourceMetadata::ChildMap* children = |
| &child_maps_[directory->resource_id()]; |
| - for (DriveResourceMetadata::ChildMap::iterator iter = children->begin(), |
| - iter_next = iter; iter != children->end(); iter = iter_next) { |
| - ++iter_next; |
| + for (DriveResourceMetadata::ChildMap::iterator iter = children->begin(); |
| + iter != children->end(); ++iter) { |
| DriveEntryProto* child = GetEntryByResourceId(iter->second); |
| DCHECK(child); |
| - if (!child->file_info().is_directory()) { |
| - RemoveEntryFromResourceMap(iter->second); |
| - delete child; |
| - children->erase(iter); |
| - } |
| - } |
| -} |
| + // Remove directories recursively. |
| + if (child->file_info().is_directory()) |
| + RemoveDirectoryChildren(child); |
|
kinaba
2013/03/14 04:21:50
Don't you need to "delete child"?
hashimoto
2013/03/14 04:55:22
You're absolutely right.
I was too focusing on the
|
| -void DriveResourceMetadata::RemoveDirectoryChildDirectories( |
| - DriveEntryProto* directory) { |
| - DCHECK(directory->file_info().is_directory()); |
| - DriveResourceMetadata::ChildMap* children = |
| - &child_maps_[directory->resource_id()]; |
| - for (DriveResourceMetadata::ChildMap::iterator iter = children->begin(), |
| - iter_next = iter; iter != children->end(); iter = iter_next) { |
| - ++iter_next; |
| - DriveEntryProto* entry = GetEntryByResourceId(iter->second); |
| - DCHECK(entry); |
| - if (entry->file_info().is_directory()) { |
| - // Remove directories recursively. |
| - RemoveDirectoryChildren(entry); |
| - RemoveEntryFromResourceMap(iter->second); |
| - delete entry; |
| - children->erase(iter); |
| - } |
| + RemoveEntryFromResourceMap(iter->second); |
| } |
| + child_maps_.erase(directory->resource_id()); |
| } |
| void DriveResourceMetadata::ProtoToDirectory(const DriveDirectoryProto& proto, |