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

Unified Diff: components/sync/driver/shared_change_processor.cc

Issue 2289143003: [Sync] Convert DTCs to be not RefCounted and NonThreadSafe. (Closed)
Patch Set: Rebase. Created 4 years, 3 months 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: components/sync/driver/shared_change_processor.cc
diff --git a/components/sync/driver/shared_change_processor.cc b/components/sync/driver/shared_change_processor.cc
index a7a955a3463b53229e2c82552ae7b3a05efdfba1..60f010a0cc17a3b80255e84137e2aa1b739ea057 100644
--- a/components/sync/driver/shared_change_processor.cc
+++ b/components/sync/driver/shared_change_processor.cc
@@ -8,10 +8,10 @@
#include <utility>
#include "base/threading/thread_task_runner_handle.h"
+#include "components/sync/api/data_type_error_handler.h"
#include "components/sync/api/sync_change.h"
#include "components/sync/api/syncable_service.h"
#include "components/sync/base/data_type_histogram.h"
-#include "components/sync/core/data_type_error_handler.h"
#include "components/sync/driver/generic_change_processor.h"
#include "components/sync/driver/generic_change_processor_factory.h"
#include "components/sync/driver/shared_change_processor_ref.h"
@@ -29,8 +29,7 @@ SharedChangeProcessor::SharedChangeProcessor(syncer::ModelType type)
: disconnected_(false),
type_(type),
frontend_task_runner_(base::ThreadTaskRunnerHandle::Get()),
- generic_change_processor_(NULL),
- error_handler_(NULL) {
+ generic_change_processor_(NULL) {
DCHECK_NE(type_, syncer::UNSPECIFIED);
}
@@ -58,7 +57,7 @@ void SharedChangeProcessor::StartAssociation(
StartDoneCallback start_done,
SyncClient* const sync_client,
syncer::UserShare* user_share,
- syncer::DataTypeErrorHandler* error_handler) {
+ std::unique_ptr<syncer::DataTypeErrorHandler> error_handler) {
DCHECK(user_share);
syncer::SyncMergeResult local_merge_result(type_);
syncer::SyncMergeResult syncer_merge_result(type_);
@@ -71,8 +70,9 @@ void SharedChangeProcessor::StartAssociation(
// disconnected at this point, so all our accesses to the syncer from this
// point on are through it.
GenericChangeProcessorFactory factory;
- local_service_ = Connect(sync_client, &factory, user_share, error_handler,
- weak_ptr_factory.GetWeakPtr());
+ local_service_ =
+ Connect(sync_client, &factory, user_share, std::move(error_handler),
+ weak_ptr_factory.GetWeakPtr());
if (!local_service_.get()) {
syncer::SyncError error(FROM_HERE, syncer::SyncError::DATATYPE_ERROR,
"Failed to connect to syncer.", type_);
@@ -149,7 +149,7 @@ base::WeakPtr<syncer::SyncableService> SharedChangeProcessor::Connect(
SyncClient* sync_client,
GenericChangeProcessorFactory* processor_factory,
syncer::UserShare* user_share,
- syncer::DataTypeErrorHandler* error_handler,
+ std::unique_ptr<syncer::DataTypeErrorHandler> error_handler,
const base::WeakPtr<syncer::SyncMergeResult>& merge_result) {
DCHECK(sync_client);
DCHECK(error_handler);
@@ -157,7 +157,7 @@ base::WeakPtr<syncer::SyncableService> SharedChangeProcessor::Connect(
AutoLock lock(monitor_lock_);
if (disconnected_)
return base::WeakPtr<syncer::SyncableService>();
- error_handler_ = error_handler;
+ error_handler_ = std::move(error_handler);
base::WeakPtr<syncer::SyncableService> local_service =
sync_client->GetSyncableServiceForType(type_);
if (!local_service.get()) {
@@ -168,7 +168,7 @@ base::WeakPtr<syncer::SyncableService> SharedChangeProcessor::Connect(
generic_change_processor_ = processor_factory
->CreateGenericChangeProcessor(
- type_, user_share, error_handler,
+ type_, user_share, error_handler_->Copy(),
local_service, merge_result, sync_client)
.release();
// If available, propagate attachment service to the syncable service.
@@ -186,7 +186,7 @@ bool SharedChangeProcessor::Disconnect() {
AutoLock lock(monitor_lock_);
bool was_connected = !disconnected_;
disconnected_ = true;
- error_handler_ = NULL;
+ error_handler_.reset();
return was_connected;
}
« no previous file with comments | « components/sync/driver/shared_change_processor.h ('k') | components/sync/driver/shared_change_processor_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698