Index: sync/syncable/mutable_entry.cc |
diff --git a/sync/syncable/mutable_entry.cc b/sync/syncable/mutable_entry.cc |
index 0aa37e7a4df1369cb2ad2e91cdd3c36fe39eb358..0cc06f90b69ea8524d301c9b8f238f8697534693 100644 |
--- a/sync/syncable/mutable_entry.cc |
+++ b/sync/syncable/mutable_entry.cc |
@@ -227,10 +227,14 @@ void MutableEntry::PutUniquePosition(const UniquePosition& value) { |
} |
bool MutableEntry::PutPredecessor(const Id& predecessor_id) { |
- MutableEntry predecessor(write_transaction(), GET_BY_ID, predecessor_id); |
- if (!predecessor.good()) |
- return false; |
- dir()->PutPredecessor(kernel_, predecessor.kernel_); |
+ if (predecessor_id.IsNull()) { |
+ dir()->PutPredecessor(kernel_, NULL); |
+ } else { |
+ MutableEntry predecessor(write_transaction(), GET_BY_ID, predecessor_id); |
+ if (!predecessor.good()) |
+ return false; |
+ dir()->PutPredecessor(kernel_, predecessor.kernel_); |
+ } |
return true; |
} |