| Index: components/sync/driver/glue/sync_backend_host_core.cc
|
| diff --git a/components/sync/driver/glue/sync_backend_host_core.cc b/components/sync/driver/glue/sync_backend_host_core.cc
|
| index b425d002499bf96f3958dcde56764d62bc63f0d6..184c2afe3b1bbda9fa6b69b3a4bda615638f0b08 100644
|
| --- a/components/sync/driver/glue/sync_backend_host_core.cc
|
| +++ b/components/sync/driver/glue/sync_backend_host_core.cc
|
| @@ -9,6 +9,7 @@
|
| #include "base/bind.h"
|
| #include "base/files/file_util.h"
|
| #include "base/location.h"
|
| +#include "base/memory/ptr_util.h"
|
| #include "base/single_thread_task_runner.h"
|
| #include "components/data_use_measurement/core/data_use_user_data.h"
|
| #include "components/invalidation/public/invalidation_util.h"
|
| @@ -329,12 +330,11 @@ void SyncBackendHostCore::OnMigrationRequested(syncer::ModelTypeSet types) {
|
| }
|
|
|
| void SyncBackendHostCore::OnProtocolEvent(const syncer::ProtocolEvent& event) {
|
| - // TODO(rlarocque): Find a way to pass event_clone as a scoped_ptr.
|
| if (forward_protocol_events_) {
|
| std::unique_ptr<syncer::ProtocolEvent> event_clone(event.Clone());
|
| host_.Call(FROM_HERE,
|
| &SyncBackendHostImpl::HandleProtocolEventOnFrontendLoop,
|
| - event_clone.release());
|
| + base::Passed(std::move(event_clone)));
|
| }
|
| }
|
|
|
| @@ -616,16 +616,14 @@ void SyncBackendHostCore::SendBufferedProtocolEventsAndEnableForwarding() {
|
| if (sync_manager_) {
|
| // Grab our own copy of the buffered events.
|
| // The buffer is not modified by this operation.
|
| - std::vector<syncer::ProtocolEvent*> buffered_events;
|
| - sync_manager_->GetBufferedProtocolEvents().release(&buffered_events);
|
| + std::vector<std::unique_ptr<syncer::ProtocolEvent>> buffered_events =
|
| + sync_manager_->GetBufferedProtocolEvents();
|
|
|
| // Send them all over the fence to the host.
|
| - for (std::vector<syncer::ProtocolEvent*>::iterator it =
|
| - buffered_events.begin();
|
| - it != buffered_events.end(); ++it) {
|
| - // TODO(rlarocque): Make it explicit that host_ takes ownership.
|
| + for (auto& event : buffered_events) {
|
| host_.Call(FROM_HERE,
|
| - &SyncBackendHostImpl::HandleProtocolEventOnFrontendLoop, *it);
|
| + &SyncBackendHostImpl::HandleProtocolEventOnFrontendLoop,
|
| + base::Passed(std::move(event)));
|
| }
|
| }
|
| }
|
| @@ -668,9 +666,10 @@ void SyncBackendHostCore::GetAllNodesForTypes(
|
| syncer::ModelTypeSet types,
|
| scoped_refptr<base::SequencedTaskRunner> task_runner,
|
| base::Callback<void(const std::vector<syncer::ModelType>& type,
|
| - ScopedVector<base::ListValue>)> callback) {
|
| + std::vector<std::unique_ptr<base::ListValue>>)>
|
| + callback) {
|
| std::vector<syncer::ModelType> types_vector;
|
| - ScopedVector<base::ListValue> node_lists;
|
| + std::vector<std::unique_ptr<base::ListValue>> node_lists;
|
|
|
| syncer::ModelSafeRoutingInfo routes;
|
| registrar_->GetModelSafeRoutingInfo(&routes);
|
| @@ -679,10 +678,9 @@ void SyncBackendHostCore::GetAllNodesForTypes(
|
| for (syncer::ModelTypeSet::Iterator it = types.First(); it.Good(); it.Inc()) {
|
| types_vector.push_back(it.Get());
|
| if (!enabled_types.Has(it.Get())) {
|
| - node_lists.push_back(new base::ListValue());
|
| + node_lists.push_back(base::MakeUnique<base::ListValue>());
|
| } else {
|
| - node_lists.push_back(
|
| - sync_manager_->GetAllNodesForType(it.Get()).release());
|
| + node_lists.push_back(sync_manager_->GetAllNodesForType(it.Get()));
|
| }
|
| }
|
|
|
|
|