diff options
author | stanisc <stanisc@chromium.org> | 2015-08-07 13:22:05 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-08-07 20:22:48 +0000 |
commit | bec62894e5b54bc589659ffceca698953d171028 (patch) | |
tree | 3adec639b9ff61fc2f6bd7f2df9239c8298c478a /sync/syncable/entry_kernel.h | |
parent | b2175430067b9063923edab0ac3ae1b986d11d39 (diff) | |
download | chromium_src-bec62894e5b54bc589659ffceca698953d171028.zip chromium_src-bec62894e5b54bc589659ffceca698953d171028.tar.gz chromium_src-bec62894e5b54bc589659ffceca698953d171028.tar.bz2 |
Optimization of loading sync entries from the DB to avoid deep copy of EntitySpecifics
BUG=517275
Review URL: https://codereview.chromium.org/1220393002
Cr-Commit-Position: refs/heads/master@{#342428}
Diffstat (limited to 'sync/syncable/entry_kernel.h')
-rw-r--r-- | sync/syncable/entry_kernel.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/sync/syncable/entry_kernel.h b/sync/syncable/entry_kernel.h index 6b627a4..746d644 100644 --- a/sync/syncable/entry_kernel.h +++ b/sync/syncable/entry_kernel.h @@ -336,6 +336,18 @@ struct SYNC_EXPORT_PRIVATE EntryKernel { return unique_position_fields[field - UNIQUE_POSITION_FIELDS_BEGIN]; } + // Deserialization methods for ::google::protobuf::MessageLite derived types. + inline void load(ProtoField field, const void* blob, int length) { + specifics_fields[field - PROTO_FIELDS_BEGIN].load(blob, length); + } + + inline void load(AttachmentMetadataField field, + const void* blob, + int length) { + attachment_metadata_fields[field - ATTACHMENT_METADATA_FIELDS_BEGIN].load( + blob, length); + } + // Sharing data methods for ::google::protobuf::MessageLite derived types. inline void copy(ProtoField src, ProtoField dest) { DCHECK_NE(src, dest); |