Index: chrome/browser/sync_file_system/drive_backend/leveldb_wrapper.cc |
diff --git a/chrome/browser/sync_file_system/drive_backend/leveldb_wrapper.cc b/chrome/browser/sync_file_system/drive_backend/leveldb_wrapper.cc |
index 3200b302366b4691d26c7741a93fb6deea69d4be..77b1461aacb9eb53f7a26a5b1cdc5ab454660a49 100644 |
--- a/chrome/browser/sync_file_system/drive_backend/leveldb_wrapper.cc |
+++ b/chrome/browser/sync_file_system/drive_backend/leveldb_wrapper.cc |
@@ -67,6 +67,20 @@ void LevelDBWrapper::Iterator::Next() { |
AdvanceIterators(); |
} |
+void LevelDBWrapper::Iterator::Delete() { |
+ DCHECK(Valid()); |
+ |
+ const std::string key_str = key().ToString(); |
+ Transaction deletion(DELETE_OPERATION, std::string()); |
+ std::pair<PendingOperationMap::iterator, bool> inserted = |
+ db_->pending_.insert(std::make_pair(key_str, deletion)); |
tzik
2014/08/12 06:28:33
Can we put previous iterator as a hint like this?
peria
2014/08/12 06:41:48
We can, but if we can add a hint, insert() returns
tzik
2014/08/12 07:32:36
Ah, I wasn't aware that.
How about doing like belo
peria
2014/08/12 07:44:35
Done.
|
+ map_iterator_ = inserted.first; |
+ if (!inserted.second) |
+ map_iterator_->second = deletion; |
+ |
+ AdvanceIterators(); |
+} |
+ |
leveldb::Slice LevelDBWrapper::Iterator::key() { |
DCHECK(Valid()); |