| Index: third_party/protobuf/src/google/protobuf/message.cc
|
| diff --git a/third_party/protobuf/src/google/protobuf/message.cc b/third_party/protobuf/src/google/protobuf/message.cc
|
| index a5a7feb62bfdec1f9c8e9fb2b14405671bd4d20a..d62ca79c80cb7d49cdf4a2dc814db293560f5f81 100644
|
| --- a/third_party/protobuf/src/google/protobuf/message.cc
|
| +++ b/third_party/protobuf/src/google/protobuf/message.cc
|
| @@ -46,9 +46,9 @@
|
| #include <google/protobuf/io/coded_stream.h>
|
| #include <google/protobuf/io/zero_copy_stream_impl.h>
|
| #include <google/protobuf/descriptor.pb.h>
|
| +#include <google/protobuf/map_field.h>
|
| #include <google/protobuf/descriptor.h>
|
| #include <google/protobuf/generated_message_util.h>
|
| -#include <google/protobuf/map_field.h>
|
| #include <google/protobuf/reflection_ops.h>
|
| #include <google/protobuf/wire_format.h>
|
| #include <google/protobuf/stubs/strutil.h>
|
| @@ -62,6 +62,8 @@ namespace protobuf {
|
| using internal::WireFormat;
|
| using internal::ReflectionOps;
|
|
|
| +Message::~Message() {}
|
| +
|
| void Message::MergeFrom(const Message& from) {
|
| const Descriptor* descriptor = GetDescriptor();
|
| GOOGLE_CHECK_EQ(from.GetDescriptor(), descriptor)
|
| @@ -96,12 +98,12 @@ bool Message::IsInitialized() const {
|
| return ReflectionOps::IsInitialized(*this);
|
| }
|
|
|
| -void Message::FindInitializationErrors(std::vector<string>* errors) const {
|
| +void Message::FindInitializationErrors(vector<string>* errors) const {
|
| return ReflectionOps::FindInitializationErrors(*this, "", errors);
|
| }
|
|
|
| string Message::InitializationErrorString() const {
|
| - std::vector<string> errors;
|
| + vector<string> errors;
|
| FindInitializationErrors(&errors);
|
| return Join(errors, ", ");
|
| }
|
| @@ -146,9 +148,9 @@ void Message::SerializeWithCachedSizes(
|
| WireFormat::SerializeWithCachedSizes(*this, GetCachedSize(), output);
|
| }
|
|
|
| -size_t Message::ByteSizeLong() const {
|
| - size_t size = WireFormat::ByteSize(*this);
|
| - SetCachedSize(internal::ToCachedSize(size));
|
| +int Message::ByteSize() const {
|
| + int size = WireFormat::ByteSize(*this);
|
| + SetCachedSize(size);
|
| return size;
|
| }
|
|
|
| @@ -225,6 +227,38 @@ void* Reflection::MutableRawRepeatedString(
|
| }
|
|
|
|
|
| +// Default EnumValue API implementations. Real reflection implementations should
|
| +// override these. However, there are several legacy implementations that do
|
| +// not, and cannot easily be changed at the same time as the Reflection API, so
|
| +// we provide these for now.
|
| +// TODO: Remove these once all Reflection implementations are updated.
|
| +int Reflection::GetEnumValue(const Message& message,
|
| + const FieldDescriptor* field) const {
|
| + GOOGLE_LOG(FATAL) << "Unimplemented EnumValue API.";
|
| + return 0;
|
| +}
|
| +void Reflection::SetEnumValue(Message* message,
|
| + const FieldDescriptor* field,
|
| + int value) const {
|
| + GOOGLE_LOG(FATAL) << "Unimplemented EnumValue API.";
|
| +}
|
| +int Reflection::GetRepeatedEnumValue(
|
| + const Message& message,
|
| + const FieldDescriptor* field, int index) const {
|
| + GOOGLE_LOG(FATAL) << "Unimplemented EnumValue API.";
|
| + return 0;
|
| +}
|
| +void Reflection::SetRepeatedEnumValue(Message* message,
|
| + const FieldDescriptor* field, int index,
|
| + int value) const {
|
| + GOOGLE_LOG(FATAL) << "Unimplemented EnumValue API.";
|
| +}
|
| +void Reflection::AddEnumValue(Message* message,
|
| + const FieldDescriptor* field,
|
| + int value) const {
|
| + GOOGLE_LOG(FATAL) << "Unimplemented EnumValue API.";
|
| +}
|
| +
|
| MapIterator Reflection::MapBegin(
|
| Message* message,
|
| const FieldDescriptor* field) const {
|
| @@ -267,8 +301,8 @@ class GeneratedMessageFactory : public MessageFactory {
|
| hash_map<const char*, RegistrationFunc*,
|
| hash<const char*>, streq> file_map_;
|
|
|
| - Mutex mutex_;
|
| // Initialized lazily, so requires locking.
|
| + Mutex mutex_;
|
| hash_map<const Descriptor*, const Message*> type_map_;
|
| };
|
|
|
|
|