Index: sync/syncable/directory.cc |
diff --git a/sync/syncable/directory.cc b/sync/syncable/directory.cc |
index cebb2d4fd8401cf0410de0bf543e9c89dc55f148..e523bcdf290cec0d608792bb761b257e632d2a9e 100644 |
--- a/sync/syncable/directory.cc |
+++ b/sync/syncable/directory.cc |
@@ -167,6 +167,11 @@ DirOpenResult Directory::OpenImpl( |
// Temporary indices before kernel_ initialized in case Load fails. We 0(1) |
// swap these later. |
Directory::MetahandlesMap tmp_handles_map; |
+ |
+ // Avoids mem leaks on failure. Harmlessly deletes the empty hash map after |
+ // the swap in the success case. |
+ STLValueDeleter<Directory::MetahandlesMap> deleter(&tmp_handles_map); |
+ |
JournalIndex delete_journals; |
DirOpenResult result = |