diff --git a/src/google/protobuf/extension_set.h b/src/google/protobuf/extension_set.h index a92c504362..3e1d1ef5eb 100644 --- a/src/google/protobuf/extension_set.h +++ b/src/google/protobuf/extension_set.h @@ -419,13 +419,8 @@ class LIBPROTOBUF_EXPORT ExtensionSet { // are never forced to serialize deterministically. uint8* SerializeWithCachedSizesToArray(int start_field_number, int end_field_number, - uint8* target) const { - return InternalSerializeWithCachedSizesToArray( - start_field_number, end_field_number, false, target); - } - uint8* SerializeMessageSetWithCachedSizesToArray(uint8* target) const { - return InternalSerializeMessageSetWithCachedSizesToArray(false, target); - } + uint8* target) const; + uint8* SerializeMessageSetWithCachedSizesToArray(uint8* target) const; // Returns the total serialized size of all the extensions. int ByteSize() const; diff --git a/src/google/protobuf/extension_set_heavy.cc b/src/google/protobuf/extension_set_heavy.cc index 7177d786c4..5dd171ed34 100644 --- a/src/google/protobuf/extension_set_heavy.cc +++ b/src/google/protobuf/extension_set_heavy.cc @@ -409,6 +409,18 @@ int ExtensionSet::Extension::SpaceUsedExcludingSelf() const { // The Serialize*ToArray methods are only needed in the heavy library, as // the lite library only generates SerializeWithCachedSizes. +uint8* ExtensionSet::SerializeWithCachedSizesToArray(int start_field_number, + int end_field_number, + uint8* target) const { + return InternalSerializeWithCachedSizesToArray( + start_field_number, end_field_number, false, target); +} + +uint8* ExtensionSet::SerializeMessageSetWithCachedSizesToArray( + uint8* target) const { + return InternalSerializeMessageSetWithCachedSizesToArray(false, target); +} + uint8* ExtensionSet::InternalSerializeWithCachedSizesToArray( int start_field_number, int end_field_number, bool deterministic, uint8* target) const {