summaryrefslogtreecommitdiffstats
path: root/sync
diff options
context:
space:
mode:
authorvmpstr <vmpstr@chromium.org>2016-02-25 16:47:18 -0800
committerCommit bot <commit-bot@chromium.org>2016-02-26 00:48:41 +0000
commit718d68bed07d2fcf9b6c7ab7e051860bdbf1547f (patch)
treee0edbaf225dacf5aec4875cb4d72b92411c6bab8 /sync
parentbbc6b8838d109d972314f404953ebd1e862169de (diff)
downloadchromium_src-718d68bed07d2fcf9b6c7ab7e051860bdbf1547f.zip
chromium_src-718d68bed07d2fcf9b6c7ab7e051860bdbf1547f.tar.gz
chromium_src-718d68bed07d2fcf9b6c7ab7e051860bdbf1547f.tar.bz2
sync: Add out-of-line copy ctors for complex classes.
This patch adds out of line copy constructors for classes that our clang-plugin considers heavy. This is an effort to enable copy constructor checks by default. BUG=436357 R=pavely@chromium.org, dcheng@chromium.org, thakis@chromium.org Review URL: https://codereview.chromium.org/1727833003 Cr-Commit-Position: refs/heads/master@{#377734}
Diffstat (limited to 'sync')
-rw-r--r--sync/api/attachments/attachment.cc2
-rw-r--r--sync/api/attachments/attachment.h1
-rw-r--r--sync/api/attachments/attachment_id.cc2
-rw-r--r--sync/api/attachments/attachment_id.h1
-rw-r--r--sync/api/entity_change.cc2
-rw-r--r--sync/api/entity_change.h1
-rw-r--r--sync/api/sync_data.cc2
-rw-r--r--sync/api/sync_data.h1
-rw-r--r--sync/api/sync_merge_result.cc2
-rw-r--r--sync/api/sync_merge_result.h1
-rw-r--r--sync/engine/sync_scheduler.h2
-rw-r--r--sync/engine/sync_scheduler_impl.cc3
-rw-r--r--sync/internal_api/attachments/attachment_service_proxy.cc3
-rw-r--r--sync/internal_api/attachments/in_memory_attachment_store.cc3
-rw-r--r--sync/internal_api/change_record.cc2
-rw-r--r--sync/internal_api/public/attachments/attachment_service_proxy.h2
-rw-r--r--sync/internal_api/public/attachments/in_memory_attachment_store.h1
-rw-r--r--sync/internal_api/public/change_record.h1
-rw-r--r--sync/internal_api/public/data_type_association_stats.cc3
-rw-r--r--sync/internal_api/public/data_type_association_stats.h1
-rw-r--r--sync/internal_api/public/data_type_debug_info_listener.cc3
-rw-r--r--sync/internal_api/public/data_type_debug_info_listener.h1
-rw-r--r--sync/internal_api/public/engine/sync_status.cc2
-rw-r--r--sync/internal_api/public/engine/sync_status.h1
-rw-r--r--sync/internal_api/public/non_blocking_sync_common.cc5
-rw-r--r--sync/internal_api/public/non_blocking_sync_common.h2
-rw-r--r--sync/internal_api/public/sessions/model_neutral_state.cc2
-rw-r--r--sync/internal_api/public/sessions/model_neutral_state.h1
-rw-r--r--sync/internal_api/public/sessions/sync_session_snapshot.cc3
-rw-r--r--sync/internal_api/public/sessions/sync_session_snapshot.h1
-rw-r--r--sync/internal_api/public/sync_manager.cc2
-rw-r--r--sync/internal_api/public/sync_manager.h1
-rw-r--r--sync/js/js_event_details.cc2
-rw-r--r--sync/js/js_event_details.h2
-rw-r--r--sync/protocol/sync_protocol_error.cc2
-rw-r--r--sync/protocol/sync_protocol_error.h1
-rw-r--r--sync/syncable/entry_kernel.cc2
-rw-r--r--sync/syncable/entry_kernel.h1
-rw-r--r--sync/syncable/write_transaction_info.cc3
-rw-r--r--sync/syncable/write_transaction_info.h1
-rw-r--r--sync/test/fake_server/bookmark_entity_builder.cc3
-rw-r--r--sync/test/fake_server/bookmark_entity_builder.h2
42 files changed, 79 insertions, 0 deletions
diff --git a/sync/api/attachments/attachment.cc b/sync/api/attachments/attachment.cc
index 28e4e08..c9ef927 100644
--- a/sync/api/attachments/attachment.cc
+++ b/sync/api/attachments/attachment.cc
@@ -11,6 +11,8 @@
namespace syncer {
+Attachment::Attachment(const Attachment& other) = default;
+
Attachment::~Attachment() {}
// Static.
diff --git a/sync/api/attachments/attachment.h b/sync/api/attachments/attachment.h
index 2f2bde0..711bc76 100644
--- a/sync/api/attachments/attachment.h
+++ b/sync/api/attachments/attachment.h
@@ -26,6 +26,7 @@ namespace syncer {
// It is cheap to copy Attachments. Feel free to store and return by value.
class SYNC_EXPORT Attachment {
public:
+ Attachment(const Attachment& other);
~Attachment();
// Default copy and assignment are welcome.
diff --git a/sync/api/attachments/attachment_id.cc b/sync/api/attachments/attachment_id.cc
index 7ebaeaf..6c8fb51 100644
--- a/sync/api/attachments/attachment_id.cc
+++ b/sync/api/attachments/attachment_id.cc
@@ -74,6 +74,8 @@ const sync_pb::AttachmentIdProto& AttachmentId::GetProto() const {
AttachmentId::AttachmentId(sync_pb::AttachmentIdProto* proto)
: proto_(proto) {}
+AttachmentId::AttachmentId(const AttachmentId& other) = default;
+
size_t AttachmentId::GetSize() const {
return proto_.Get().size_bytes();
}
diff --git a/sync/api/attachments/attachment_id.h b/sync/api/attachments/attachment_id.h
index 3d2242c..b90bd4a 100644
--- a/sync/api/attachments/attachment_id.h
+++ b/sync/api/attachments/attachment_id.h
@@ -27,6 +27,7 @@ namespace syncer {
// equivalent.
class SYNC_EXPORT AttachmentId {
public:
+ AttachmentId(const AttachmentId& other);
~AttachmentId();
// Default copy and assignment are welcome.
diff --git a/sync/api/entity_change.cc b/sync/api/entity_change.cc
index 70f5add..ef0871e 100644
--- a/sync/api/entity_change.cc
+++ b/sync/api/entity_change.cc
@@ -28,6 +28,8 @@ EntityChange::EntityChange(std::string client_tag,
EntityDataPtr data)
: client_tag_(client_tag), type_(type), data_(data) {}
+EntityChange::EntityChange(const EntityChange& other) = default;
+
EntityChange::~EntityChange() {}
} // namespace syncer_v2
diff --git a/sync/api/entity_change.h b/sync/api/entity_change.h
index db1a9a0..60e512c 100644
--- a/sync/api/entity_change.h
+++ b/sync/api/entity_change.h
@@ -25,6 +25,7 @@ class SYNC_EXPORT EntityChange {
static EntityChange CreateUpdate(std::string client_tag, EntityDataPtr data);
static EntityChange CreateDelete(std::string client_tag);
+ EntityChange(const EntityChange& other);
virtual ~EntityChange();
std::string client_tag() const { return client_tag_; }
diff --git a/sync/api/sync_data.cc b/sync/api/sync_data.cc
index e40e7c3..8559b4c 100644
--- a/sync/api/sync_data.cc
+++ b/sync/api/sync_data.cc
@@ -77,6 +77,8 @@ SyncData::SyncData(int64_t id,
attachment_service_(attachment_service),
is_valid_(true) {}
+SyncData::SyncData(const SyncData& other) = default;
+
SyncData::~SyncData() {}
// Static.
diff --git a/sync/api/sync_data.h b/sync/api/sync_data.h
index a516eab..0463e32 100644
--- a/sync/api/sync_data.h
+++ b/sync/api/sync_data.h
@@ -39,6 +39,7 @@ class SYNC_EXPORT SyncData {
public:
// Creates an empty and invalid SyncData.
SyncData();
+ SyncData(const SyncData& other);
~SyncData();
// Default copy and assign welcome.
diff --git a/sync/api/sync_merge_result.cc b/sync/api/sync_merge_result.cc
index 0231acb0..f5607c7 100644
--- a/sync/api/sync_merge_result.cc
+++ b/sync/api/sync_merge_result.cc
@@ -18,6 +18,8 @@ SyncMergeResult::SyncMergeResult(ModelType type)
pre_association_version_(0) {
}
+SyncMergeResult::SyncMergeResult(const SyncMergeResult& other) = default;
+
SyncMergeResult::~SyncMergeResult() {
}
diff --git a/sync/api/sync_merge_result.h b/sync/api/sync_merge_result.h
index f164a4f..bcc2e5b 100644
--- a/sync/api/sync_merge_result.h
+++ b/sync/api/sync_merge_result.h
@@ -24,6 +24,7 @@ class SYNC_EXPORT SyncMergeResult {
public:
// Initialize an empty merge result for model type |type|.
explicit SyncMergeResult(ModelType type);
+ SyncMergeResult(const SyncMergeResult& other);
~SyncMergeResult();
// Default copy and assign welcome.
diff --git a/sync/engine/sync_scheduler.h b/sync/engine/sync_scheduler.h
index 0aa9133..1bf5a10 100644
--- a/sync/engine/sync_scheduler.h
+++ b/sync/engine/sync_scheduler.h
@@ -32,6 +32,7 @@ struct SYNC_EXPORT ConfigurationParams {
const ModelSafeRoutingInfo& routing_info,
const base::Closure& ready_task,
const base::Closure& retry_task);
+ ConfigurationParams(const ConfigurationParams& other);
~ConfigurationParams();
// Source for the configuration.
@@ -48,6 +49,7 @@ struct SYNC_EXPORT ConfigurationParams {
struct SYNC_EXPORT ClearParams {
explicit ClearParams(const base::Closure& report_success_task);
+ ClearParams(const ClearParams& other);
~ClearParams();
// Callback to invoke on successful completion.
diff --git a/sync/engine/sync_scheduler_impl.cc b/sync/engine/sync_scheduler_impl.cc
index cc5e4a7..d4bbef5 100644
--- a/sync/engine/sync_scheduler_impl.cc
+++ b/sync/engine/sync_scheduler_impl.cc
@@ -107,12 +107,15 @@ ConfigurationParams::ConfigurationParams(
retry_task(retry_task) {
DCHECK(!ready_task.is_null());
}
+ConfigurationParams::ConfigurationParams(const ConfigurationParams& other) =
+ default;
ConfigurationParams::~ConfigurationParams() {}
ClearParams::ClearParams(const base::Closure& report_success_task)
: report_success_task(report_success_task) {
DCHECK(!report_success_task.is_null());
}
+ClearParams::ClearParams(const ClearParams& other) = default;
ClearParams::~ClearParams() {}
SyncSchedulerImpl::WaitInterval::WaitInterval()
diff --git a/sync/internal_api/attachments/attachment_service_proxy.cc b/sync/internal_api/attachments/attachment_service_proxy.cc
index 91a627d..a50f250 100644
--- a/sync/internal_api/attachments/attachment_service_proxy.cc
+++ b/sync/internal_api/attachments/attachment_service_proxy.cc
@@ -46,6 +46,9 @@ AttachmentServiceProxy::AttachmentServiceProxy(
DCHECK(core_.get());
}
+AttachmentServiceProxy::AttachmentServiceProxy(
+ const AttachmentServiceProxy& other) = default;
+
AttachmentServiceProxy::~AttachmentServiceProxy() {
}
diff --git a/sync/internal_api/attachments/in_memory_attachment_store.cc b/sync/internal_api/attachments/in_memory_attachment_store.cc
index 99f6030..b4f834c 100644
--- a/sync/internal_api/attachments/in_memory_attachment_store.cc
+++ b/sync/internal_api/attachments/in_memory_attachment_store.cc
@@ -156,6 +156,9 @@ InMemoryAttachmentStore::AttachmentEntry::AttachmentEntry(
components.insert(initial_reference_component);
}
+InMemoryAttachmentStore::AttachmentEntry::AttachmentEntry(
+ const AttachmentEntry& other) = default;
+
InMemoryAttachmentStore::AttachmentEntry::~AttachmentEntry() {
}
diff --git a/sync/internal_api/change_record.cc b/sync/internal_api/change_record.cc
index 18fb825..a9a17eb 100644
--- a/sync/internal_api/change_record.cc
+++ b/sync/internal_api/change_record.cc
@@ -17,6 +17,8 @@ namespace syncer {
ChangeRecord::ChangeRecord()
: id(kInvalidId), action(ACTION_ADD) {}
+ChangeRecord::ChangeRecord(const ChangeRecord& other) = default;
+
ChangeRecord::~ChangeRecord() {}
scoped_ptr<base::DictionaryValue> ChangeRecord::ToValue() const {
diff --git a/sync/internal_api/public/attachments/attachment_service_proxy.h b/sync/internal_api/public/attachments/attachment_service_proxy.h
index 107576b..7c3897a 100644
--- a/sync/internal_api/public/attachments/attachment_service_proxy.h
+++ b/sync/internal_api/public/attachments/attachment_service_proxy.h
@@ -48,6 +48,8 @@ class SYNC_EXPORT AttachmentServiceProxy : public AttachmentService {
const scoped_refptr<base::SequencedTaskRunner>& wrapped_task_runner,
const base::WeakPtr<syncer::AttachmentService>& wrapped);
+ AttachmentServiceProxy(const AttachmentServiceProxy& other);
+
~AttachmentServiceProxy() override;
void GetOrDownloadAttachments(const AttachmentIdList& attachment_ids,
diff --git a/sync/internal_api/public/attachments/in_memory_attachment_store.h b/sync/internal_api/public/attachments/in_memory_attachment_store.h
index 7ae1f5d..04c5fa0 100644
--- a/sync/internal_api/public/attachments/in_memory_attachment_store.h
+++ b/sync/internal_api/public/attachments/in_memory_attachment_store.h
@@ -58,6 +58,7 @@ class SYNC_EXPORT InMemoryAttachmentStore : public AttachmentStoreBackend,
struct AttachmentEntry {
AttachmentEntry(const Attachment& attachment,
AttachmentStore::Component initial_reference_component);
+ AttachmentEntry(const AttachmentEntry& other);
~AttachmentEntry();
Attachment attachment;
diff --git a/sync/internal_api/public/change_record.h b/sync/internal_api/public/change_record.h
index 0eb887b..43d518a 100644
--- a/sync/internal_api/public/change_record.h
+++ b/sync/internal_api/public/change_record.h
@@ -49,6 +49,7 @@ struct SYNC_EXPORT ChangeRecord {
ACTION_UPDATE,
};
ChangeRecord();
+ ChangeRecord(const ChangeRecord& other);
~ChangeRecord();
scoped_ptr<base::DictionaryValue> ToValue() const;
diff --git a/sync/internal_api/public/data_type_association_stats.cc b/sync/internal_api/public/data_type_association_stats.cc
index 4988de1..a56295a 100644
--- a/sync/internal_api/public/data_type_association_stats.cc
+++ b/sync/internal_api/public/data_type_association_stats.cc
@@ -22,6 +22,9 @@ DataTypeAssociationStats::DataTypeAssociationStats()
had_error(false) {
}
+DataTypeAssociationStats::DataTypeAssociationStats(
+ const DataTypeAssociationStats& other) = default;
+
DataTypeAssociationStats::~DataTypeAssociationStats() {
}
diff --git a/sync/internal_api/public/data_type_association_stats.h b/sync/internal_api/public/data_type_association_stats.h
index cd5b226..f65053b 100644
--- a/sync/internal_api/public/data_type_association_stats.h
+++ b/sync/internal_api/public/data_type_association_stats.h
@@ -15,6 +15,7 @@ namespace syncer {
// Container for datatype association results.
struct SYNC_EXPORT DataTypeAssociationStats {
DataTypeAssociationStats();
+ DataTypeAssociationStats(const DataTypeAssociationStats& other);
~DataTypeAssociationStats();
// The state of the world before association.
diff --git a/sync/internal_api/public/data_type_debug_info_listener.cc b/sync/internal_api/public/data_type_debug_info_listener.cc
index 08355dd..31226e9 100644
--- a/sync/internal_api/public/data_type_debug_info_listener.cc
+++ b/sync/internal_api/public/data_type_debug_info_listener.cc
@@ -9,6 +9,9 @@ namespace syncer {
DataTypeConfigurationStats::DataTypeConfigurationStats()
: model_type(UNSPECIFIED) {}
+DataTypeConfigurationStats::DataTypeConfigurationStats(
+ const DataTypeConfigurationStats& other) = default;
+
DataTypeConfigurationStats::~DataTypeConfigurationStats() {}
} // namespace syncer
diff --git a/sync/internal_api/public/data_type_debug_info_listener.h b/sync/internal_api/public/data_type_debug_info_listener.h
index 6395a04..9101bdd 100644
--- a/sync/internal_api/public/data_type_debug_info_listener.h
+++ b/sync/internal_api/public/data_type_debug_info_listener.h
@@ -14,6 +14,7 @@ namespace syncer {
struct SYNC_EXPORT DataTypeConfigurationStats {
DataTypeConfigurationStats();
+ DataTypeConfigurationStats(const DataTypeConfigurationStats& other);
~DataTypeConfigurationStats();
// The datatype that was configured.
diff --git a/sync/internal_api/public/engine/sync_status.cc b/sync/internal_api/public/engine/sync_status.cc
index bd01406..45c3d7e 100644
--- a/sync/internal_api/public/engine/sync_status.cc
+++ b/sync/internal_api/public/engine/sync_status.cc
@@ -30,6 +30,8 @@ SyncStatus::SyncStatus()
num_entries_by_type(MODEL_TYPE_COUNT, 0),
num_to_delete_entries_by_type(MODEL_TYPE_COUNT, 0) {}
+SyncStatus::SyncStatus(const SyncStatus& other) = default;
+
SyncStatus::~SyncStatus() {
}
diff --git a/sync/internal_api/public/engine/sync_status.h b/sync/internal_api/public/engine/sync_status.h
index 60bb961..1587dd1 100644
--- a/sync/internal_api/public/engine/sync_status.h
+++ b/sync/internal_api/public/engine/sync_status.h
@@ -24,6 +24,7 @@ namespace syncer {
// DictionaryValue used to populate the about:sync summary tab.
struct SYNC_EXPORT SyncStatus {
SyncStatus();
+ SyncStatus(const SyncStatus& other);
~SyncStatus();
// TODO(akalin): Replace this with a NotificationsDisabledReason
diff --git a/sync/internal_api/public/non_blocking_sync_common.cc b/sync/internal_api/public/non_blocking_sync_common.cc
index a8ad64f..7f7c8f9 100644
--- a/sync/internal_api/public/non_blocking_sync_common.cc
+++ b/sync/internal_api/public/non_blocking_sync_common.cc
@@ -8,6 +8,8 @@ namespace syncer_v2 {
CommitRequestData::CommitRequestData() {}
+CommitRequestData::CommitRequestData(const CommitRequestData& other) = default;
+
CommitRequestData::~CommitRequestData() {}
CommitResponseData::CommitResponseData() {}
@@ -16,6 +18,9 @@ CommitResponseData::~CommitResponseData() {}
UpdateResponseData::UpdateResponseData() {}
+UpdateResponseData::UpdateResponseData(const UpdateResponseData& other) =
+ default;
+
UpdateResponseData::~UpdateResponseData() {}
} // namespace syncer_v2
diff --git a/sync/internal_api/public/non_blocking_sync_common.h b/sync/internal_api/public/non_blocking_sync_common.h
index b12ff01..45ea7dc 100644
--- a/sync/internal_api/public/non_blocking_sync_common.h
+++ b/sync/internal_api/public/non_blocking_sync_common.h
@@ -21,6 +21,7 @@ static const int64_t kUncommittedVersion = -1;
struct SYNC_EXPORT CommitRequestData {
CommitRequestData();
+ CommitRequestData(const CommitRequestData& other);
~CommitRequestData();
EntityDataPtr entity;
@@ -44,6 +45,7 @@ struct SYNC_EXPORT CommitResponseData {
struct SYNC_EXPORT UpdateResponseData {
UpdateResponseData();
+ UpdateResponseData(const UpdateResponseData& other);
~UpdateResponseData();
EntityDataPtr entity;
diff --git a/sync/internal_api/public/sessions/model_neutral_state.cc b/sync/internal_api/public/sessions/model_neutral_state.cc
index 37d0174..71b1591 100644
--- a/sync/internal_api/public/sessions/model_neutral_state.cc
+++ b/sync/internal_api/public/sessions/model_neutral_state.cc
@@ -25,6 +25,8 @@ ModelNeutralState::ModelNeutralState()
items_committed(false) {
}
+ModelNeutralState::ModelNeutralState(const ModelNeutralState& other) = default;
+
ModelNeutralState::~ModelNeutralState() {}
bool HasSyncerError(const ModelNeutralState& state) {
diff --git a/sync/internal_api/public/sessions/model_neutral_state.h b/sync/internal_api/public/sessions/model_neutral_state.h
index 91bce88..6a785a5 100644
--- a/sync/internal_api/public/sessions/model_neutral_state.h
+++ b/sync/internal_api/public/sessions/model_neutral_state.h
@@ -19,6 +19,7 @@ namespace sessions {
// model types.
struct SYNC_EXPORT ModelNeutralState {
ModelNeutralState();
+ ModelNeutralState(const ModelNeutralState& other);
~ModelNeutralState();
// The set of types for which updates were requested from the server.
diff --git a/sync/internal_api/public/sessions/sync_session_snapshot.cc b/sync/internal_api/public/sessions/sync_session_snapshot.cc
index e595934..624d517 100644
--- a/sync/internal_api/public/sessions/sync_session_snapshot.cc
+++ b/sync/internal_api/public/sessions/sync_session_snapshot.cc
@@ -57,6 +57,9 @@ SyncSessionSnapshot::SyncSessionSnapshot(
is_initialized_(true) {
}
+SyncSessionSnapshot::SyncSessionSnapshot(const SyncSessionSnapshot& other) =
+ default;
+
SyncSessionSnapshot::~SyncSessionSnapshot() {}
scoped_ptr<base::DictionaryValue> SyncSessionSnapshot::ToValue() const {
diff --git a/sync/internal_api/public/sessions/sync_session_snapshot.h b/sync/internal_api/public/sessions/sync_session_snapshot.h
index fbe54eb..76ada7c 100644
--- a/sync/internal_api/public/sessions/sync_session_snapshot.h
+++ b/sync/internal_api/public/sessions/sync_session_snapshot.h
@@ -45,6 +45,7 @@ class SYNC_EXPORT SyncSessionSnapshot {
const std::vector<int>& num_entries_by_type,
const std::vector<int>& num_to_delete_entries_by_type,
sync_pb::GetUpdatesCallerInfo::GetUpdatesSource legacy_updates_source);
+ SyncSessionSnapshot(const SyncSessionSnapshot& other);
~SyncSessionSnapshot();
scoped_ptr<base::DictionaryValue> ToValue() const;
diff --git a/sync/internal_api/public/sync_manager.cc b/sync/internal_api/public/sync_manager.cc
index 8f8fd79..e82613e 100644
--- a/sync/internal_api/public/sync_manager.cc
+++ b/sync/internal_api/public/sync_manager.cc
@@ -8,6 +8,8 @@ namespace syncer {
SyncCredentials::SyncCredentials() {}
+SyncCredentials::SyncCredentials(const SyncCredentials& other) = default;
+
SyncCredentials::~SyncCredentials() {}
SyncManager::ChangeDelegate::~ChangeDelegate() {}
diff --git a/sync/internal_api/public/sync_manager.h b/sync/internal_api/public/sync_manager.h
index e1cfc29..1f834f3 100644
--- a/sync/internal_api/public/sync_manager.h
+++ b/sync/internal_api/public/sync_manager.h
@@ -66,6 +66,7 @@ class SyncSessionSnapshot;
// Contains everything needed to talk to and identify a user account.
struct SYNC_EXPORT SyncCredentials {
SyncCredentials();
+ SyncCredentials(const SyncCredentials& other);
~SyncCredentials();
// Account_id of signed in account.
diff --git a/sync/js/js_event_details.cc b/sync/js/js_event_details.cc
index d430632..99cc3ef 100644
--- a/sync/js/js_event_details.cc
+++ b/sync/js/js_event_details.cc
@@ -13,6 +13,8 @@ JsEventDetails::JsEventDetails() {}
JsEventDetails::JsEventDetails(base::DictionaryValue* details)
: details_(details) {}
+JsEventDetails::JsEventDetails(const JsEventDetails& other) = default;
+
JsEventDetails::~JsEventDetails() {}
const base::DictionaryValue& JsEventDetails::Get() const {
diff --git a/sync/js/js_event_details.h b/sync/js/js_event_details.h
index ae970cc..22cb2e8 100644
--- a/sync/js/js_event_details.h
+++ b/sync/js/js_event_details.h
@@ -25,6 +25,8 @@ class SYNC_EXPORT JsEventDetails {
// Takes over the data in |details|, leaving |details| empty.
explicit JsEventDetails(base::DictionaryValue* details);
+ JsEventDetails(const JsEventDetails& other);
+
~JsEventDetails();
const base::DictionaryValue& Get() const;
diff --git a/sync/protocol/sync_protocol_error.cc b/sync/protocol/sync_protocol_error.cc
index c82d32e..e7cee24 100644
--- a/sync/protocol/sync_protocol_error.cc
+++ b/sync/protocol/sync_protocol_error.cc
@@ -50,6 +50,8 @@ SyncProtocolError::SyncProtocolError()
action(UNKNOWN_ACTION) {
}
+SyncProtocolError::SyncProtocolError(const SyncProtocolError& other) = default;
+
SyncProtocolError::~SyncProtocolError() {
}
diff --git a/sync/protocol/sync_protocol_error.h b/sync/protocol/sync_protocol_error.h
index 7ba8d6c..2ba65d5 100644
--- a/sync/protocol/sync_protocol_error.h
+++ b/sync/protocol/sync_protocol_error.h
@@ -84,6 +84,7 @@ struct SYNC_EXPORT SyncProtocolError {
ClientAction action;
ModelTypeSet error_data_types;
SyncProtocolError();
+ SyncProtocolError(const SyncProtocolError& other);
~SyncProtocolError();
base::DictionaryValue* ToValue() const;
};
diff --git a/sync/syncable/entry_kernel.cc b/sync/syncable/entry_kernel.cc
index f96342f..fce4bc2 100644
--- a/sync/syncable/entry_kernel.cc
+++ b/sync/syncable/entry_kernel.cc
@@ -24,6 +24,8 @@ EntryKernel::EntryKernel() : dirty_(false) {
}
}
+EntryKernel::EntryKernel(const EntryKernel& other) = default;
+
EntryKernel::~EntryKernel() {}
ModelType EntryKernel::GetModelType() const {
diff --git a/sync/syncable/entry_kernel.h b/sync/syncable/entry_kernel.h
index 96a657f..064cdd4 100644
--- a/sync/syncable/entry_kernel.h
+++ b/sync/syncable/entry_kernel.h
@@ -219,6 +219,7 @@ struct SYNC_EXPORT EntryKernel {
public:
EntryKernel();
+ EntryKernel(const EntryKernel& other);
~EntryKernel();
// Set the dirty bit, and optionally add this entry's metahandle to
diff --git a/sync/syncable/write_transaction_info.cc b/sync/syncable/write_transaction_info.cc
index 6a2df9f..c7362e3 100644
--- a/sync/syncable/write_transaction_info.cc
+++ b/sync/syncable/write_transaction_info.cc
@@ -25,6 +25,9 @@ WriteTransactionInfo::WriteTransactionInfo(
WriteTransactionInfo::WriteTransactionInfo()
: id(-1), writer(INVALID) {}
+WriteTransactionInfo::WriteTransactionInfo(const WriteTransactionInfo& other) =
+ default;
+
WriteTransactionInfo::~WriteTransactionInfo() {}
base::DictionaryValue* WriteTransactionInfo::ToValue(
diff --git a/sync/syncable/write_transaction_info.h b/sync/syncable/write_transaction_info.h
index dcf2ab4..ba64ef9 100644
--- a/sync/syncable/write_transaction_info.h
+++ b/sync/syncable/write_transaction_info.h
@@ -23,6 +23,7 @@ struct WriteTransactionInfo {
WriterTag writer,
ImmutableEntryKernelMutationMap mutations);
WriteTransactionInfo();
+ WriteTransactionInfo(const WriteTransactionInfo& other);
~WriteTransactionInfo();
// Caller owns the return value.
diff --git a/sync/test/fake_server/bookmark_entity_builder.cc b/sync/test/fake_server/bookmark_entity_builder.cc
index 20a5b03..2cf54e1 100644
--- a/sync/test/fake_server/bookmark_entity_builder.cc
+++ b/sync/test/fake_server/bookmark_entity_builder.cc
@@ -42,6 +42,9 @@ BookmarkEntityBuilder::BookmarkEntityBuilder(
originator_client_item_id_(originator_client_item_id) {
}
+BookmarkEntityBuilder::BookmarkEntityBuilder(
+ const BookmarkEntityBuilder& other) = default;
+
BookmarkEntityBuilder::~BookmarkEntityBuilder() {
}
diff --git a/sync/test/fake_server/bookmark_entity_builder.h b/sync/test/fake_server/bookmark_entity_builder.h
index 35e7559..e03755d 100644
--- a/sync/test/fake_server/bookmark_entity_builder.h
+++ b/sync/test/fake_server/bookmark_entity_builder.h
@@ -21,6 +21,8 @@ class BookmarkEntityBuilder {
const std::string& originator_cache_guid,
const std::string& originator_client_item_id);
+ BookmarkEntityBuilder(const BookmarkEntityBuilder& other);
+
~BookmarkEntityBuilder();
// Sets the parent ID of the bookmark to be built. If this is not called,