Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1414)

Unified Diff: content/browser/leveldb_wrapper_impl.cc

Issue 2593503005: Don't abuse LevelDBObserver interface to pass GetAll result. (Closed)
Patch Set: modify sanity_check test to give async callbacks a chance to cause problems Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/browser/leveldb_wrapper_impl.cc
diff --git a/content/browser/leveldb_wrapper_impl.cc b/content/browser/leveldb_wrapper_impl.cc
index b7cb71358edf77fa4c743f6ba965c6d4369cc624..7a6c587bed454ef7416ad514c43f6a463ad8459f 100644
--- a/content/browser/leveldb_wrapper_impl.cc
+++ b/content/browser/leveldb_wrapper_impl.cc
@@ -216,12 +216,12 @@ void LevelDBWrapperImpl::Get(const std::vector<uint8_t>& key,
callback.Run(true, found->second);
}
-void LevelDBWrapperImpl::GetAll(const std::string& source,
- const GetAllCallback& callback) {
+void LevelDBWrapperImpl::GetAll(
+ mojom::LevelDBWrapperGetAllCallbackAssociatedPtrInfo complete_callback,
+ const GetAllCallback& callback) {
if (!map_) {
- LoadMap(
- base::Bind(&LevelDBWrapperImpl::GetAll, base::Unretained(this),
- source, callback));
+ LoadMap(base::Bind(&LevelDBWrapperImpl::GetAll, base::Unretained(this),
+ base::Passed(std::move(complete_callback)), callback));
dcheng 2016/12/22 07:21:47 Nit: base::Passed(&complete_callback)
Marijn Kruisselbrink 2016/12/22 17:12:19 I find the std::move version of base::Passed more
return;
}
@@ -233,10 +233,11 @@ void LevelDBWrapperImpl::GetAll(const std::string& source,
all.push_back(std::move(kv));
}
callback.Run(leveldb::mojom::DatabaseError::OK, std::move(all));
- observers_.ForAllPtrs(
- [source](mojom::LevelDBObserver* observer) {
- observer->GetAllComplete(source);
- });
+ if (complete_callback.is_valid()) {
+ mojom::LevelDBWrapperGetAllCallbackAssociatedPtr complete_ptr;
+ complete_ptr.Bind(std::move(complete_callback));
+ complete_ptr->Complete(true);
+ }
}
void LevelDBWrapperImpl::OnConnectionError() {

Powered by Google App Engine
This is Rietveld 408576698