Index: chrome/browser/webdata/web_data_service.cc |
diff --git a/chrome/browser/webdata/web_data_service.cc b/chrome/browser/webdata/web_data_service.cc |
index f7016e7ebfc3e2630f3e3e0ca5fb79bd12ab37b1..2f8ce214cdb2362ced2e7c9a7e2cad6b23b3b5e9 100644 |
--- a/chrome/browser/webdata/web_data_service.cc |
+++ b/chrome/browser/webdata/web_data_service.cc |
@@ -422,10 +422,6 @@ bool WebDataService::InitWithPath(const FilePath& path) { |
return true; |
} |
-void WebDataService::RequestCompleted(Handle h) { |
- request_manager_.RequestCompleted(h); |
-} |
- |
//////////////////////////////////////////////////////////////////////////////// |
// |
// The following methods are executed in Chrome_WebDataThread. |
@@ -526,11 +522,12 @@ void WebDataService::ScheduleTask(const tracked_objects::Location& from_here, |
void WebDataService::ScheduleDBTask( |
const tracked_objects::Location& from_here, |
const base::Closure& task) { |
- WebDataRequest* request = |
- new WebDataRequest(this, NULL, &request_manager_); |
+ scoped_ptr<WebDataRequest> request( |
+ new WebDataRequest(this, NULL, &request_manager_)); |
if (is_running_) { |
BrowserThread::PostTask(BrowserThread::DB, from_here, |
- base::Bind(&WebDataService::DBTaskWrapper, this, task, request)); |
+ base::Bind(&WebDataService::DBTaskWrapper, this, task, |
+ base::Passed(&request))); |
} else { |
NOTREACHED() << "Task scheduled after Shutdown()"; |
} |
@@ -541,33 +538,35 @@ WebDataService::Handle WebDataService::ScheduleDBTaskWithResult( |
const ResultTask& task, |
WebDataServiceConsumer* consumer) { |
DCHECK(consumer); |
- WebDataRequest* request = |
- new WebDataRequest(this, consumer, &request_manager_); |
+ scoped_ptr<WebDataRequest> request( |
+ new WebDataRequest(this, consumer, &request_manager_)); |
+ WebDataService::Handle handle = request->GetHandle(); |
if (is_running_) { |
BrowserThread::PostTask(BrowserThread::DB, from_here, |
- base::Bind(&WebDataService::DBResultTaskWrapper, this, task, request)); |
+ base::Bind(&WebDataService::DBResultTaskWrapper, this, task, |
+ base::Passed(&request))); |
} else { |
NOTREACHED() << "Task scheduled after Shutdown()"; |
} |
- return request->GetHandle(); |
+ return handle; |
} |
void WebDataService::DBTaskWrapper(const base::Closure& task, |
- WebDataRequest* request) { |
+ scoped_ptr<WebDataRequest> request) { |
InitializeDatabaseIfNecessary(); |
if (db_ && !request->IsCancelled()) { |
task.Run(); |
} |
- request->RequestComplete(); |
+ request_manager_.RequestCompleted(request.Pass()); |
} |
void WebDataService::DBResultTaskWrapper(const ResultTask& task, |
- WebDataRequest* request) { |
+ scoped_ptr<WebDataRequest> request) { |
InitializeDatabaseIfNecessary(); |
if (db_ && !request->IsCancelled()) { |
request->SetResult(task.Run().Pass()); |
} |
- request->RequestComplete(); |
+ request_manager_.RequestCompleted(request.Pass()); |
} |
void WebDataService::ScheduleCommit() { |