From 92a7e778e7394386f413cec28d67a07630f784b1 Mon Sep 17 00:00:00 2001 From: Adam Cozzette Date: Fri, 1 Dec 2017 10:05:10 -0800 Subject: Integrated internal changes from Google --- src/google/protobuf/generated_message_util.h | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'src/google/protobuf/generated_message_util.h') diff --git a/src/google/protobuf/generated_message_util.h b/src/google/protobuf/generated_message_util.h index 8ebfc13b..cd74b45e 100644 --- a/src/google/protobuf/generated_message_util.h +++ b/src/google/protobuf/generated_message_util.h @@ -47,6 +47,7 @@ #include #include #include +#include #include #include #include @@ -120,6 +121,21 @@ template bool AllAreInitialized(const Type& t) { return true; } +// "Weak" variant of AllAreInitialized, used to implement implicit weak fields. +// This version operates on MessageLite to avoid introducing a dependency on the +// concrete message type. +template +bool AllAreInitializedWeak(const ::google::protobuf::RepeatedPtrField& t) { + for (int i = t.size(); --i >= 0;) { + if (!reinterpret_cast(t) + .Get< ::google::protobuf::internal::ImplicitWeakTypeHandler >(i) + .IsInitialized()) { + return false; + } + } + return true; +} + LIBPROTOBUF_EXPORT void InitProtobufDefaults(); struct LIBPROTOBUF_EXPORT FieldMetadata { -- cgit v1.2.3