summaryrefslogtreecommitdiffstats
path: root/sync/syncable/entry_kernel.h
diff options
context:
space:
mode:
authorstanisc <stanisc@chromium.org>2015-08-07 13:22:05 -0700
committerCommit bot <commit-bot@chromium.org>2015-08-07 20:22:48 +0000
commitbec62894e5b54bc589659ffceca698953d171028 (patch)
tree3adec639b9ff61fc2f6bd7f2df9239c8298c478a /sync/syncable/entry_kernel.h
parentb2175430067b9063923edab0ac3ae1b986d11d39 (diff)
downloadchromium_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.h12
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);