| Index: third_party/protobuf/src/google/protobuf/compiler/java/java_helpers.h
|
| diff --git a/third_party/protobuf/src/google/protobuf/compiler/java/java_helpers.h b/third_party/protobuf/src/google/protobuf/compiler/java/java_helpers.h
|
| index 5392d6d72363c2eef888feef51089e27ee7881f7..c850423e71733a940e78f7dd52c7a8b6861883eb 100644
|
| --- a/third_party/protobuf/src/google/protobuf/compiler/java/java_helpers.h
|
| +++ b/third_party/protobuf/src/google/protobuf/compiler/java/java_helpers.h
|
| @@ -170,44 +170,41 @@ inline string ImmutableDefaultValue(const FieldDescriptor* field,
|
| }
|
| bool IsDefaultValueJavaDefault(const FieldDescriptor* field);
|
|
|
| -// Does this message class have generated parsing, serialization, and other
|
| -// standard methods for which reflection-based fallback implementations exist?
|
| -inline bool HasGeneratedMethods(const Descriptor* descriptor) {
|
| - return descriptor->file()->options().optimize_for() !=
|
| - FileOptions::CODE_SIZE;
|
| -}
|
| -
|
| // Does this message have specialized equals() and hashCode() methods?
|
| inline bool HasEqualsAndHashCode(const Descriptor* descriptor) {
|
| return descriptor->file()->options().java_generate_equals_and_hash();
|
| }
|
|
|
| // Does this message class have descriptor and reflection methods?
|
| -inline bool HasDescriptorMethods(const Descriptor* descriptor) {
|
| - return descriptor->file()->options().optimize_for() !=
|
| - FileOptions::LITE_RUNTIME;
|
| +inline bool HasDescriptorMethods(const Descriptor* descriptor,
|
| + bool enforce_lite) {
|
| + return !enforce_lite &&
|
| + descriptor->file()->options().optimize_for() !=
|
| + FileOptions::LITE_RUNTIME;
|
| }
|
| -inline bool HasDescriptorMethods(const EnumDescriptor* descriptor) {
|
| - return descriptor->file()->options().optimize_for() !=
|
| - FileOptions::LITE_RUNTIME;
|
| +inline bool HasDescriptorMethods(const EnumDescriptor* descriptor,
|
| + bool enforce_lite) {
|
| + return !enforce_lite &&
|
| + descriptor->file()->options().optimize_for() !=
|
| + FileOptions::LITE_RUNTIME;
|
| }
|
| -inline bool HasDescriptorMethods(const FileDescriptor* descriptor) {
|
| - return descriptor->options().optimize_for() !=
|
| - FileOptions::LITE_RUNTIME;
|
| +inline bool HasDescriptorMethods(const FileDescriptor* descriptor,
|
| + bool enforce_lite) {
|
| + return !enforce_lite &&
|
| + descriptor->options().optimize_for() != FileOptions::LITE_RUNTIME;
|
| }
|
|
|
| // Should we generate generic services for this file?
|
| -inline bool HasGenericServices(const FileDescriptor *file) {
|
| +inline bool HasGenericServices(const FileDescriptor *file, bool enforce_lite) {
|
| return file->service_count() > 0 &&
|
| - file->options().optimize_for() != FileOptions::LITE_RUNTIME &&
|
| + HasDescriptorMethods(file, enforce_lite) &&
|
| file->options().java_generic_services();
|
| }
|
|
|
| -inline bool IsLazy(const FieldDescriptor* descriptor) {
|
| +inline bool IsLazy(const FieldDescriptor* descriptor, bool enforce_lite) {
|
| // Currently, the proto-lite version suports lazy field.
|
| // TODO(niwasaki): Support lazy fields also for other proto runtimes.
|
| - if (descriptor->file()->options().optimize_for() !=
|
| - FileOptions::LITE_RUNTIME) {
|
| + if (HasDescriptorMethods(descriptor->file(), enforce_lite)) {
|
| return false;
|
| }
|
| return descriptor->options().lazy();
|
|
|