| Index: components/sync/syncable/model_neutral_mutable_entry.cc
|
| diff --git a/components/sync/syncable/model_neutral_mutable_entry.cc b/components/sync/syncable/model_neutral_mutable_entry.cc
|
| index 61eb6fea0262546fb375e061b02d4d3cab348baa..8628d42265bbcf7cd7cbe1c7a4b9fcd52e62cc58 100644
|
| --- a/components/sync/syncable/model_neutral_mutable_entry.cc
|
| +++ b/components/sync/syncable/model_neutral_mutable_entry.cc
|
| @@ -5,6 +5,7 @@
|
| #include "components/sync/syncable/model_neutral_mutable_entry.h"
|
|
|
| #include <memory>
|
| +#include <utility>
|
|
|
| #include "components/sync/base/hash_util.h"
|
| #include "components/sync/base/unique_position.h"
|
| @@ -37,12 +38,12 @@ ModelNeutralMutableEntry::ModelNeutralMutableEntry(BaseWriteTransaction* trans,
|
| kernel->put(IS_DEL, true);
|
| // We match the database defaults here
|
| kernel->put(BASE_VERSION, CHANGES_VERSION);
|
| - if (!trans->directory()->InsertEntry(trans, kernel.get())) {
|
| + kernel_ = kernel.get();
|
| + if (!trans->directory()->InsertEntry(trans, std::move(kernel))) {
|
| + kernel_ = nullptr;
|
| return; // Failed inserting.
|
| }
|
| - trans->TrackChangesTo(kernel.get());
|
| -
|
| - kernel_ = kernel.release();
|
| + trans->TrackChangesTo(kernel_);
|
| }
|
|
|
| ModelNeutralMutableEntry::ModelNeutralMutableEntry(BaseWriteTransaction* trans,
|
| @@ -74,14 +75,13 @@ ModelNeutralMutableEntry::ModelNeutralMutableEntry(BaseWriteTransaction* trans,
|
| kernel->put(IS_DIR, true);
|
|
|
| kernel->mark_dirty(&trans->directory()->kernel()->dirty_metahandles);
|
| + kernel_ = kernel.get();
|
|
|
| - if (!trans->directory()->InsertEntry(trans, kernel.get())) {
|
| + if (!trans->directory()->InsertEntry(trans, std::move(kernel))) {
|
| + kernel_ = nullptr;
|
| return; // Failed inserting.
|
| }
|
| -
|
| - trans->TrackChangesTo(kernel.get());
|
| -
|
| - kernel_ = kernel.release();
|
| + trans->TrackChangesTo(kernel_);
|
| }
|
|
|
| ModelNeutralMutableEntry::ModelNeutralMutableEntry(BaseWriteTransaction* trans,
|
|
|