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_); |