Chromium Code Reviews| Index: sync/syncable/mutable_entry.cc |
| diff --git a/sync/syncable/mutable_entry.cc b/sync/syncable/mutable_entry.cc |
| index 869320f33e20aa487ebbc4ecaefc015ed9f1d90e..86f289ee9e1a5316c16e1c9741ecabb47587af6f 100644 |
| --- a/sync/syncable/mutable_entry.cc |
| +++ b/sync/syncable/mutable_entry.cc |
| @@ -141,14 +141,14 @@ bool MutableEntry::PutIsDel(bool is_del) { |
| return true; |
| } |
| -bool MutableEntry::Put(Int64Field field, const int64& value) { |
| +bool MutableEntry::Put(OrdinalField field, const NodeOrdinal& value) { |
| DCHECK(kernel_); |
| write_transaction_->SaveOriginal(kernel_); |
| - if (kernel_->ref(field) != value) { |
| + if(!kernel_->ref(field).Equals(value)) { |
| ScopedKernelLock lock(dir()); |
| - if (SERVER_POSITION_IN_PARENT == field) { |
| - ScopedIndexUpdater<ParentIdAndHandleIndexer> updater(lock, kernel_, |
| - dir()->kernel_->parent_id_child_index); |
| + if (SERVER_ORDINAL_IN_PARENT == field) { |
| + ScopedIndexUpdater<ParentIdAndHandleIndexer> updater( |
| + lock, kernel_, dir()->kernel_->parent_id_child_index); |
|
rlarocque
2012/10/05 19:02:55
nit: This indent is off by one. I think you should
|
| kernel_->put(field, value); |
| } else { |
| kernel_->put(field, value); |
| @@ -158,6 +158,17 @@ bool MutableEntry::Put(Int64Field field, const int64& value) { |
| return true; |
| } |
| +bool MutableEntry::Put(Int64Field field, const int64& value) { |
| + DCHECK(kernel_); |
| + write_transaction_->SaveOriginal(kernel_); |
| + if (kernel_->ref(field) != value) { |
| + ScopedKernelLock lock(dir()); |
| + kernel_->put(field, value); |
| + kernel_->mark_dirty(dir()->kernel_->dirty_metahandles); |
| + } |
| + return true; |
| +} |
| + |
| bool MutableEntry::Put(TimeField field, const base::Time& value) { |
| DCHECK(kernel_); |
| write_transaction_->SaveOriginal(kernel_); |