| Index: sync/syncable/mutable_entry.cc
|
| diff --git a/sync/syncable/mutable_entry.cc b/sync/syncable/mutable_entry.cc
|
| index d9d5daa890f0c13fedd1723bfe9b27794a4b2d14..98af1ccf66ce5383226c41ca241147f308a195cb 100644
|
| --- a/sync/syncable/mutable_entry.cc
|
| +++ b/sync/syncable/mutable_entry.cc
|
| @@ -247,6 +247,25 @@ void MutableEntry::PutAttachmentMetadata(
|
| }
|
| }
|
|
|
| +void MutableEntry::UpdateAttachmentIdWithServerInfo(
|
| + const sync_pb::AttachmentIdProto& updated_attachment_id) {
|
| + DCHECK(kernel_);
|
| + DCHECK(!updated_attachment_id.unique_id().empty());
|
| + write_transaction()->TrackChangesTo(kernel_);
|
| + sync_pb::AttachmentMetadata& attachment_metadata =
|
| + kernel_->mutable_ref(ATTACHMENT_METADATA);
|
| + for (int i = 0; i < attachment_metadata.record_size(); ++i) {
|
| + sync_pb::AttachmentMetadataRecord* record =
|
| + attachment_metadata.mutable_record(i);
|
| + if (record->id().unique_id() != updated_attachment_id.unique_id())
|
| + continue;
|
| + *record->mutable_id() = updated_attachment_id;
|
| + record->set_is_on_server(true);
|
| + }
|
| + kernel_->mark_dirty(&dir()->kernel_->dirty_metahandles);
|
| + MarkForSyncing(this);
|
| +}
|
| +
|
| // This function sets only the flags needed to get this entry to sync.
|
| bool MarkForSyncing(MutableEntry* e) {
|
| DCHECK_NE(static_cast<MutableEntry*>(NULL), e);
|
|
|