Index: sync/syncable/mutable_entry.cc |
diff --git a/sync/syncable/mutable_entry.cc b/sync/syncable/mutable_entry.cc |
index d9d5daa890f0c13fedd1723bfe9b27794a4b2d14..337b56b9fcdfd45d6efaf9f048fa75cf692807f6 100644 |
--- a/sync/syncable/mutable_entry.cc |
+++ b/sync/syncable/mutable_entry.cc |
@@ -247,6 +247,24 @@ void MutableEntry::PutAttachmentMetadata( |
} |
} |
+void MutableEntry::UpdateAttachmentId( |
maniscalco
2014/05/09 18:12:11
How about adding a unit test for this method? dir
pavely
2014/05/13 23:06:44
Done.
|
+ const sync_pb::AttachmentIdProto& attachment_id) { |
+ DCHECK(kernel_); |
maniscalco
2014/05/09 18:12:11
Consider DCHECKing that attachment_id's unique_id
pavely
2014/05/13 23:06:44
Done.
|
+ 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() != attachment_id.unique_id()) |
+ continue; |
+ record->set_is_on_server(true); |
maniscalco
2014/05/09 18:12:11
I wonder if we can make it more obvious that this
pavely
2014/05/13 23:06:44
Decided to name it UpdateAttachmentIdWithServerInf
|
+ record->mutable_id()->set_url(attachment_id.url()); |
+ } |
+ 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); |