Add new file option php_namespace. (#3162)

* Add new file option php_namespace.

Use this option to change the namespace of php generated classes.
Default is empty. When this option is empty, the package name will be
used for determining the namespace.

* Uncomment commented tests

* Revert gdb test change

* Update csharp descriptor.

* Add test for empty php_namespace.
pull/2262/merge
Paul Yang 8 years ago committed by GitHub
parent fbaad3617f
commit 6f325805c0
  1. 4
      Makefile.am
  2. 143
      csharp/src/Google.Protobuf/Reflection/Descriptor.cs
  3. 27
      php/ext/google/protobuf/def.c
  4. 377
      php/ext/google/protobuf/upb.c
  5. 33
      php/ext/google/protobuf/upb.h
  6. 1
      php/src/GPBMetadata/Google/Protobuf/Internal/Descriptor.php
  7. 20
      php/src/Google/Protobuf/Internal/DescriptorProto.php
  8. 4
      php/src/Google/Protobuf/Internal/DescriptorProto_ExtensionRange.php
  9. 4
      php/src/Google/Protobuf/Internal/DescriptorProto_ReservedRange.php
  10. 6
      php/src/Google/Protobuf/Internal/EnumDescriptorProto.php
  11. 6
      php/src/Google/Protobuf/Internal/EnumOptions.php
  12. 6
      php/src/Google/Protobuf/Internal/EnumValueDescriptorProto.php
  13. 4
      php/src/Google/Protobuf/Internal/EnumValueOptions.php
  14. 20
      php/src/Google/Protobuf/Internal/FieldDescriptorProto.php
  15. 14
      php/src/Google/Protobuf/Internal/FieldOptions.php
  16. 24
      php/src/Google/Protobuf/Internal/FileDescriptorProto.php
  17. 2
      php/src/Google/Protobuf/Internal/FileDescriptorSet.php
  18. 82
      php/src/Google/Protobuf/Internal/FileOptions.php
  19. 2
      php/src/Google/Protobuf/Internal/GeneratedCodeInfo.php
  20. 8
      php/src/Google/Protobuf/Internal/GeneratedCodeInfo_Annotation.php
  21. 10
      php/src/Google/Protobuf/Internal/MessageOptions.php
  22. 12
      php/src/Google/Protobuf/Internal/MethodDescriptorProto.php
  23. 6
      php/src/Google/Protobuf/Internal/MethodOptions.php
  24. 4
      php/src/Google/Protobuf/Internal/OneofDescriptorProto.php
  25. 2
      php/src/Google/Protobuf/Internal/OneofOptions.php
  26. 6
      php/src/Google/Protobuf/Internal/ServiceDescriptorProto.php
  27. 4
      php/src/Google/Protobuf/Internal/ServiceOptions.php
  28. 2
      php/src/Google/Protobuf/Internal/SourceCodeInfo.php
  29. 10
      php/src/Google/Protobuf/Internal/SourceCodeInfo_Location.php
  30. 14
      php/src/Google/Protobuf/Internal/UninterpretedOption.php
  31. 4
      php/src/Google/Protobuf/Internal/UninterpretedOption_NamePart.php
  32. 13
      php/src/Google/Protobuf/descriptor.php
  33. 21
      php/tests/generated_class_test.php
  34. 5
      php/tests/memory_leak_test.php
  35. 7
      php/tests/proto/test.proto
  36. 8
      php/tests/proto/test_empty_php_namespace.proto
  37. 8
      php/tests/proto/test_php_namespace.proto
  38. 27
      src/google/protobuf/compiler/php/php_generator.cc
  39. 410
      src/google/protobuf/descriptor.pb.cc
  40. 135
      src/google/protobuf/descriptor.pb.h
  41. 5
      src/google/protobuf/descriptor.proto
  42. 2
      tests.sh

@ -654,11 +654,13 @@ php_EXTRA_DIST= \
php/tests/map_field_test.php \ php/tests/map_field_test.php \
php/tests/memory_leak_test.php \ php/tests/memory_leak_test.php \
php/tests/php_implementation_test.php \ php/tests/php_implementation_test.php \
php/tests/proto/test_empty_php_namespace.proto \
php/tests/proto/test_import_descriptor_proto.proto \ php/tests/proto/test_import_descriptor_proto.proto \
php/tests/proto/test_include.proto \ php/tests/proto/test_include.proto \
php/tests/proto/test.proto \ php/tests/proto/test.proto \
php/tests/proto/test_prefix.proto \
php/tests/proto/test_no_namespace.proto \ php/tests/proto/test_no_namespace.proto \
php/tests/proto/test_php_namespace.proto \
php/tests/proto/test_prefix.proto \
php/tests/test.sh \ php/tests/test.sh \
php/tests/test_base.php \ php/tests/test_base.php \
php/tests/test_util.php \ php/tests/test_util.php \

@ -80,7 +80,7 @@ namespace Google.Protobuf.Reflection {
"ASgJEhMKC291dHB1dF90eXBlGAMgASgJEi8KB29wdGlvbnMYBCABKAsyHi5n", "ASgJEhMKC291dHB1dF90eXBlGAMgASgJEi8KB29wdGlvbnMYBCABKAsyHi5n",
"b29nbGUucHJvdG9idWYuTWV0aG9kT3B0aW9ucxIfChBjbGllbnRfc3RyZWFt", "b29nbGUucHJvdG9idWYuTWV0aG9kT3B0aW9ucxIfChBjbGllbnRfc3RyZWFt",
"aW5nGAUgASgIOgVmYWxzZRIfChBzZXJ2ZXJfc3RyZWFtaW5nGAYgASgIOgVm", "aW5nGAUgASgIOgVmYWxzZRIfChBzZXJ2ZXJfc3RyZWFtaW5nGAYgASgIOgVm",
"YWxzZSK0BQoLRmlsZU9wdGlvbnMSFAoMamF2YV9wYWNrYWdlGAEgASgJEhwK", "YWxzZSLLBQoLRmlsZU9wdGlvbnMSFAoMamF2YV9wYWNrYWdlGAEgASgJEhwK",
"FGphdmFfb3V0ZXJfY2xhc3NuYW1lGAggASgJEiIKE2phdmFfbXVsdGlwbGVf", "FGphdmFfb3V0ZXJfY2xhc3NuYW1lGAggASgJEiIKE2phdmFfbXVsdGlwbGVf",
"ZmlsZXMYCiABKAg6BWZhbHNlEikKHWphdmFfZ2VuZXJhdGVfZXF1YWxzX2Fu", "ZmlsZXMYCiABKAg6BWZhbHNlEikKHWphdmFfZ2VuZXJhdGVfZXF1YWxzX2Fu",
"ZF9oYXNoGBQgASgIQgIYARIlChZqYXZhX3N0cmluZ19jaGVja191dGY4GBsg", "ZF9oYXNoGBQgASgIQgIYARIlChZqYXZhX3N0cmluZ19jaGVja191dGY4GBsg",
@ -92,61 +92,61 @@ namespace Google.Protobuf.Reflection {
"ZBgXIAEoCDoFZmFsc2USHwoQY2NfZW5hYmxlX2FyZW5hcxgfIAEoCDoFZmFs", "ZBgXIAEoCDoFZmFsc2USHwoQY2NfZW5hYmxlX2FyZW5hcxgfIAEoCDoFZmFs",
"c2USGQoRb2JqY19jbGFzc19wcmVmaXgYJCABKAkSGAoQY3NoYXJwX25hbWVz", "c2USGQoRb2JqY19jbGFzc19wcmVmaXgYJCABKAkSGAoQY3NoYXJwX25hbWVz",
"cGFjZRglIAEoCRIUCgxzd2lmdF9wcmVmaXgYJyABKAkSGAoQcGhwX2NsYXNz", "cGFjZRglIAEoCRIUCgxzd2lmdF9wcmVmaXgYJyABKAkSGAoQcGhwX2NsYXNz",
"X3ByZWZpeBgoIAEoCRJDChR1bmludGVycHJldGVkX29wdGlvbhjnByADKAsy", "X3ByZWZpeBgoIAEoCRIVCg1waHBfbmFtZXNwYWNlGCkgASgJEkMKFHVuaW50",
"JC5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlvbiI6CgxPcHRp",
"bWl6ZU1vZGUSCQoFU1BFRUQQARINCglDT0RFX1NJWkUQAhIQCgxMSVRFX1JV",
"TlRJTUUQAyoJCOgHEICAgIACSgQIJhAnIvIBCg5NZXNzYWdlT3B0aW9ucxIm",
"ChdtZXNzYWdlX3NldF93aXJlX2Zvcm1hdBgBIAEoCDoFZmFsc2USLgofbm9f",
"c3RhbmRhcmRfZGVzY3JpcHRvcl9hY2Nlc3NvchgCIAEoCDoFZmFsc2USGQoK",
"ZGVwcmVjYXRlZBgDIAEoCDoFZmFsc2USEQoJbWFwX2VudHJ5GAcgASgIEkMK",
"FHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1",
"Zi5VbmludGVycHJldGVkT3B0aW9uKgkI6AcQgICAgAJKBAgIEAlKBAgJEAoi",
"ngMKDEZpZWxkT3B0aW9ucxI6CgVjdHlwZRgBIAEoDjIjLmdvb2dsZS5wcm90",
"b2J1Zi5GaWVsZE9wdGlvbnMuQ1R5cGU6BlNUUklORxIOCgZwYWNrZWQYAiAB",
"KAgSPwoGanN0eXBlGAYgASgOMiQuZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0",
"aW9ucy5KU1R5cGU6CUpTX05PUk1BTBITCgRsYXp5GAUgASgIOgVmYWxzZRIZ",
"CgpkZXByZWNhdGVkGAMgASgIOgVmYWxzZRITCgR3ZWFrGAogASgIOgVmYWxz",
"ZRJDChR1bmludGVycHJldGVkX29wdGlvbhjnByADKAsyJC5nb29nbGUucHJv",
"dG9idWYuVW5pbnRlcnByZXRlZE9wdGlvbiIvCgVDVHlwZRIKCgZTVFJJTkcQ",
"ABIICgRDT1JEEAESEAoMU1RSSU5HX1BJRUNFEAIiNQoGSlNUeXBlEg0KCUpT",
"X05PUk1BTBAAEg0KCUpTX1NUUklORxABEg0KCUpTX05VTUJFUhACKgkI6AcQ",
"gICAgAJKBAgEEAUiXgoMT25lb2ZPcHRpb25zEkMKFHVuaW50ZXJwcmV0ZWRf",
"b3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVk",
"T3B0aW9uKgkI6AcQgICAgAIikwEKC0VudW1PcHRpb25zEhMKC2FsbG93X2Fs",
"aWFzGAIgASgIEhkKCmRlcHJlY2F0ZWQYAyABKAg6BWZhbHNlEkMKFHVuaW50",
"ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5Vbmlu", "ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5Vbmlu",
"dGVycHJldGVkT3B0aW9uKgkI6AcQgICAgAJKBAgFEAYifQoQRW51bVZhbHVl", "dGVycHJldGVkT3B0aW9uIjoKDE9wdGltaXplTW9kZRIJCgVTUEVFRBABEg0K",
"T3B0aW9ucxIZCgpkZXByZWNhdGVkGAEgASgIOgVmYWxzZRJDChR1bmludGVy", "CUNPREVfU0laRRACEhAKDExJVEVfUlVOVElNRRADKgkI6AcQgICAgAJKBAgm",
"cHJldGVkX29wdGlvbhjnByADKAsyJC5nb29nbGUucHJvdG9idWYuVW5pbnRl", "ECci8gEKDk1lc3NhZ2VPcHRpb25zEiYKF21lc3NhZ2Vfc2V0X3dpcmVfZm9y",
"cnByZXRlZE9wdGlvbioJCOgHEICAgIACInsKDlNlcnZpY2VPcHRpb25zEhkK", "bWF0GAEgASgIOgVmYWxzZRIuCh9ub19zdGFuZGFyZF9kZXNjcmlwdG9yX2Fj",
"CmRlcHJlY2F0ZWQYISABKAg6BWZhbHNlEkMKFHVuaW50ZXJwcmV0ZWRfb3B0", "Y2Vzc29yGAIgASgIOgVmYWxzZRIZCgpkZXByZWNhdGVkGAMgASgIOgVmYWxz",
"ZRIRCgltYXBfZW50cnkYByABKAgSQwoUdW5pbnRlcnByZXRlZF9vcHRpb24Y",
"5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb24q",
"CQjoBxCAgICAAkoECAgQCUoECAkQCiKeAwoMRmllbGRPcHRpb25zEjoKBWN0",
"eXBlGAEgASgOMiMuZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9ucy5DVHlw",
"ZToGU1RSSU5HEg4KBnBhY2tlZBgCIAEoCBI/CgZqc3R5cGUYBiABKA4yJC5n",
"b29nbGUucHJvdG9idWYuRmllbGRPcHRpb25zLkpTVHlwZToJSlNfTk9STUFM",
"EhMKBGxhenkYBSABKAg6BWZhbHNlEhkKCmRlcHJlY2F0ZWQYAyABKAg6BWZh",
"bHNlEhMKBHdlYWsYCiABKAg6BWZhbHNlEkMKFHVuaW50ZXJwcmV0ZWRfb3B0",
"aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0", "aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0",
"aW9uKgkI6AcQgICAgAIirQIKDU1ldGhvZE9wdGlvbnMSGQoKZGVwcmVjYXRl", "aW9uIi8KBUNUeXBlEgoKBlNUUklORxAAEggKBENPUkQQARIQCgxTVFJJTkdf",
"ZBghIAEoCDoFZmFsc2USXwoRaWRlbXBvdGVuY3lfbGV2ZWwYIiABKA4yLy5n", "UElFQ0UQAiI1CgZKU1R5cGUSDQoJSlNfTk9STUFMEAASDQoJSlNfU1RSSU5H",
"b29nbGUucHJvdG9idWYuTWV0aG9kT3B0aW9ucy5JZGVtcG90ZW5jeUxldmVs", "EAESDQoJSlNfTlVNQkVSEAIqCQjoBxCAgICAAkoECAQQBSJeCgxPbmVvZk9w",
"OhNJREVNUE9URU5DWV9VTktOT1dOEkMKFHVuaW50ZXJwcmV0ZWRfb3B0aW9u", "dGlvbnMSQwoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xl",
"GOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9u", "LnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb24qCQjoBxCAgICAAiKTAQoL",
"IlAKEElkZW1wb3RlbmN5TGV2ZWwSFwoTSURFTVBPVEVOQ1lfVU5LTk9XThAA", "RW51bU9wdGlvbnMSEwoLYWxsb3dfYWxpYXMYAiABKAgSGQoKZGVwcmVjYXRl",
"EhMKD05PX1NJREVfRUZGRUNUUxABEg4KCklERU1QT1RFTlQQAioJCOgHEICA", "ZBgDIAEoCDoFZmFsc2USQwoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygL",
"gIACIp4CChNVbmludGVycHJldGVkT3B0aW9uEjsKBG5hbWUYAiADKAsyLS5n", "MiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb24qCQjoBxCA",
"b29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlvbi5OYW1lUGFydBIY", "gICAAkoECAUQBiJ9ChBFbnVtVmFsdWVPcHRpb25zEhkKCmRlcHJlY2F0ZWQY",
"ChBpZGVudGlmaWVyX3ZhbHVlGAMgASgJEhoKEnBvc2l0aXZlX2ludF92YWx1", "ASABKAg6BWZhbHNlEkMKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIk",
"ZRgEIAEoBBIaChJuZWdhdGl2ZV9pbnRfdmFsdWUYBSABKAMSFAoMZG91Ymxl", "Lmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uKgkI6AcQgICA",
"X3ZhbHVlGAYgASgBEhQKDHN0cmluZ192YWx1ZRgHIAEoDBIXCg9hZ2dyZWdh", "gAIiewoOU2VydmljZU9wdGlvbnMSGQoKZGVwcmVjYXRlZBghIAEoCDoFZmFs",
"dGVfdmFsdWUYCCABKAkaMwoITmFtZVBhcnQSEQoJbmFtZV9wYXJ0GAEgAigJ", "c2USQwoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnBy",
"EhQKDGlzX2V4dGVuc2lvbhgCIAIoCCLVAQoOU291cmNlQ29kZUluZm8SOgoI", "b3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb24qCQjoBxCAgICAAiKtAgoNTWV0",
"bG9jYXRpb24YASADKAsyKC5nb29nbGUucHJvdG9idWYuU291cmNlQ29kZUlu", "aG9kT3B0aW9ucxIZCgpkZXByZWNhdGVkGCEgASgIOgVmYWxzZRJfChFpZGVt",
"Zm8uTG9jYXRpb24ahgEKCExvY2F0aW9uEhAKBHBhdGgYASADKAVCAhABEhAK", "cG90ZW5jeV9sZXZlbBgiIAEoDjIvLmdvb2dsZS5wcm90b2J1Zi5NZXRob2RP",
"BHNwYW4YAiADKAVCAhABEhgKEGxlYWRpbmdfY29tbWVudHMYAyABKAkSGQoR", "cHRpb25zLklkZW1wb3RlbmN5TGV2ZWw6E0lERU1QT1RFTkNZX1VOS05PV04S",
"dHJhaWxpbmdfY29tbWVudHMYBCABKAkSIQoZbGVhZGluZ19kZXRhY2hlZF9j", "QwoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3Rv",
"b21tZW50cxgGIAMoCSKnAQoRR2VuZXJhdGVkQ29kZUluZm8SQQoKYW5ub3Rh", "YnVmLlVuaW50ZXJwcmV0ZWRPcHRpb24iUAoQSWRlbXBvdGVuY3lMZXZlbBIX",
"dGlvbhgBIAMoCzItLmdvb2dsZS5wcm90b2J1Zi5HZW5lcmF0ZWRDb2RlSW5m", "ChNJREVNUE9URU5DWV9VTktOT1dOEAASEwoPTk9fU0lERV9FRkZFQ1RTEAES",
"by5Bbm5vdGF0aW9uGk8KCkFubm90YXRpb24SEAoEcGF0aBgBIAMoBUICEAES", "DgoKSURFTVBPVEVOVBACKgkI6AcQgICAgAIingIKE1VuaW50ZXJwcmV0ZWRP",
"EwoLc291cmNlX2ZpbGUYAiABKAkSDQoFYmVnaW4YAyABKAUSCwoDZW5kGAQg", "cHRpb24SOwoEbmFtZRgCIAMoCzItLmdvb2dsZS5wcm90b2J1Zi5VbmludGVy",
"ASgFQowBChNjb20uZ29vZ2xlLnByb3RvYnVmQhBEZXNjcmlwdG9yUHJvdG9z", "cHJldGVkT3B0aW9uLk5hbWVQYXJ0EhgKEGlkZW50aWZpZXJfdmFsdWUYAyAB",
"SAFaPmdpdGh1Yi5jb20vZ29sYW5nL3Byb3RvYnVmL3Byb3RvYy1nZW4tZ28v", "KAkSGgoScG9zaXRpdmVfaW50X3ZhbHVlGAQgASgEEhoKEm5lZ2F0aXZlX2lu",
"ZGVzY3JpcHRvcjtkZXNjcmlwdG9yogIDR1BCqgIaR29vZ2xlLlByb3RvYnVm", "dF92YWx1ZRgFIAEoAxIUCgxkb3VibGVfdmFsdWUYBiABKAESFAoMc3RyaW5n",
"LlJlZmxlY3Rpb24=")); "X3ZhbHVlGAcgASgMEhcKD2FnZ3JlZ2F0ZV92YWx1ZRgIIAEoCRozCghOYW1l",
"UGFydBIRCgluYW1lX3BhcnQYASACKAkSFAoMaXNfZXh0ZW5zaW9uGAIgAigI",
"ItUBCg5Tb3VyY2VDb2RlSW5mbxI6Cghsb2NhdGlvbhgBIAMoCzIoLmdvb2ds",
"ZS5wcm90b2J1Zi5Tb3VyY2VDb2RlSW5mby5Mb2NhdGlvbhqGAQoITG9jYXRp",
"b24SEAoEcGF0aBgBIAMoBUICEAESEAoEc3BhbhgCIAMoBUICEAESGAoQbGVh",
"ZGluZ19jb21tZW50cxgDIAEoCRIZChF0cmFpbGluZ19jb21tZW50cxgEIAEo",
"CRIhChlsZWFkaW5nX2RldGFjaGVkX2NvbW1lbnRzGAYgAygJIqcBChFHZW5l",
"cmF0ZWRDb2RlSW5mbxJBCgphbm5vdGF0aW9uGAEgAygLMi0uZ29vZ2xlLnBy",
"b3RvYnVmLkdlbmVyYXRlZENvZGVJbmZvLkFubm90YXRpb24aTwoKQW5ub3Rh",
"dGlvbhIQCgRwYXRoGAEgAygFQgIQARITCgtzb3VyY2VfZmlsZRgCIAEoCRIN",
"CgViZWdpbhgDIAEoBRILCgNlbmQYBCABKAVCjAEKE2NvbS5nb29nbGUucHJv",
"dG9idWZCEERlc2NyaXB0b3JQcm90b3NIAVo+Z2l0aHViLmNvbS9nb2xhbmcv",
"cHJvdG9idWYvcHJvdG9jLWdlbi1nby9kZXNjcmlwdG9yO2Rlc2NyaXB0b3Ki",
"AgNHUEKqAhpHb29nbGUuUHJvdG9idWYuUmVmbGVjdGlvbg=="));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { }, new pbr::FileDescriptor[] { },
new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] {
@ -160,7 +160,7 @@ namespace Google.Protobuf.Reflection {
new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.EnumValueDescriptorProto), global::Google.Protobuf.Reflection.EnumValueDescriptorProto.Parser, new[]{ "Name", "Number", "Options" }, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.EnumValueDescriptorProto), global::Google.Protobuf.Reflection.EnumValueDescriptorProto.Parser, new[]{ "Name", "Number", "Options" }, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.ServiceDescriptorProto), global::Google.Protobuf.Reflection.ServiceDescriptorProto.Parser, new[]{ "Name", "Method", "Options" }, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.ServiceDescriptorProto), global::Google.Protobuf.Reflection.ServiceDescriptorProto.Parser, new[]{ "Name", "Method", "Options" }, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.MethodDescriptorProto), global::Google.Protobuf.Reflection.MethodDescriptorProto.Parser, new[]{ "Name", "InputType", "OutputType", "Options", "ClientStreaming", "ServerStreaming" }, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.MethodDescriptorProto), global::Google.Protobuf.Reflection.MethodDescriptorProto.Parser, new[]{ "Name", "InputType", "OutputType", "Options", "ClientStreaming", "ServerStreaming" }, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.FileOptions), global::Google.Protobuf.Reflection.FileOptions.Parser, new[]{ "JavaPackage", "JavaOuterClassname", "JavaMultipleFiles", "JavaGenerateEqualsAndHash", "JavaStringCheckUtf8", "OptimizeFor", "GoPackage", "CcGenericServices", "JavaGenericServices", "PyGenericServices", "Deprecated", "CcEnableArenas", "ObjcClassPrefix", "CsharpNamespace", "SwiftPrefix", "PhpClassPrefix", "UninterpretedOption" }, null, new[]{ typeof(global::Google.Protobuf.Reflection.FileOptions.Types.OptimizeMode) }, null), new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.FileOptions), global::Google.Protobuf.Reflection.FileOptions.Parser, new[]{ "JavaPackage", "JavaOuterClassname", "JavaMultipleFiles", "JavaGenerateEqualsAndHash", "JavaStringCheckUtf8", "OptimizeFor", "GoPackage", "CcGenericServices", "JavaGenericServices", "PyGenericServices", "Deprecated", "CcEnableArenas", "ObjcClassPrefix", "CsharpNamespace", "SwiftPrefix", "PhpClassPrefix", "PhpNamespace", "UninterpretedOption" }, null, new[]{ typeof(global::Google.Protobuf.Reflection.FileOptions.Types.OptimizeMode) }, null),
new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.MessageOptions), global::Google.Protobuf.Reflection.MessageOptions.Parser, new[]{ "MessageSetWireFormat", "NoStandardDescriptorAccessor", "Deprecated", "MapEntry", "UninterpretedOption" }, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.MessageOptions), global::Google.Protobuf.Reflection.MessageOptions.Parser, new[]{ "MessageSetWireFormat", "NoStandardDescriptorAccessor", "Deprecated", "MapEntry", "UninterpretedOption" }, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.FieldOptions), global::Google.Protobuf.Reflection.FieldOptions.Parser, new[]{ "Ctype", "Packed", "Jstype", "Lazy", "Deprecated", "Weak", "UninterpretedOption" }, null, new[]{ typeof(global::Google.Protobuf.Reflection.FieldOptions.Types.CType), typeof(global::Google.Protobuf.Reflection.FieldOptions.Types.JSType) }, null), new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.FieldOptions), global::Google.Protobuf.Reflection.FieldOptions.Parser, new[]{ "Ctype", "Packed", "Jstype", "Lazy", "Deprecated", "Weak", "UninterpretedOption" }, null, new[]{ typeof(global::Google.Protobuf.Reflection.FieldOptions.Types.CType), typeof(global::Google.Protobuf.Reflection.FieldOptions.Types.JSType) }, null),
new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.OneofOptions), global::Google.Protobuf.Reflection.OneofOptions.Parser, new[]{ "UninterpretedOption" }, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.OneofOptions), global::Google.Protobuf.Reflection.OneofOptions.Parser, new[]{ "UninterpretedOption" }, null, null, null),
@ -2810,6 +2810,7 @@ namespace Google.Protobuf.Reflection {
csharpNamespace_ = other.csharpNamespace_; csharpNamespace_ = other.csharpNamespace_;
swiftPrefix_ = other.swiftPrefix_; swiftPrefix_ = other.swiftPrefix_;
phpClassPrefix_ = other.phpClassPrefix_; phpClassPrefix_ = other.phpClassPrefix_;
phpNamespace_ = other.phpNamespace_;
uninterpretedOption_ = other.uninterpretedOption_.Clone(); uninterpretedOption_ = other.uninterpretedOption_.Clone();
} }
@ -3073,6 +3074,22 @@ namespace Google.Protobuf.Reflection {
} }
} }
/// <summary>Field number for the "php_namespace" field.</summary>
public const int PhpNamespaceFieldNumber = 41;
private string phpNamespace_ = "";
/// <summary>
/// Use this option to change the namespace of php generated classes. Default
/// is empty. When this option is empty, the package name will be used for
/// determining the namespace.
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public string PhpNamespace {
get { return phpNamespace_; }
set {
phpNamespace_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
}
}
/// <summary>Field number for the "uninterpreted_option" field.</summary> /// <summary>Field number for the "uninterpreted_option" field.</summary>
public const int UninterpretedOptionFieldNumber = 999; public const int UninterpretedOptionFieldNumber = 999;
private static readonly pb::FieldCodec<global::Google.Protobuf.Reflection.UninterpretedOption> _repeated_uninterpretedOption_codec private static readonly pb::FieldCodec<global::Google.Protobuf.Reflection.UninterpretedOption> _repeated_uninterpretedOption_codec
@ -3115,6 +3132,7 @@ namespace Google.Protobuf.Reflection {
if (CsharpNamespace != other.CsharpNamespace) return false; if (CsharpNamespace != other.CsharpNamespace) return false;
if (SwiftPrefix != other.SwiftPrefix) return false; if (SwiftPrefix != other.SwiftPrefix) return false;
if (PhpClassPrefix != other.PhpClassPrefix) return false; if (PhpClassPrefix != other.PhpClassPrefix) return false;
if (PhpNamespace != other.PhpNamespace) return false;
if(!uninterpretedOption_.Equals(other.uninterpretedOption_)) return false; if(!uninterpretedOption_.Equals(other.uninterpretedOption_)) return false;
return true; return true;
} }
@ -3138,6 +3156,7 @@ namespace Google.Protobuf.Reflection {
if (CsharpNamespace.Length != 0) hash ^= CsharpNamespace.GetHashCode(); if (CsharpNamespace.Length != 0) hash ^= CsharpNamespace.GetHashCode();
if (SwiftPrefix.Length != 0) hash ^= SwiftPrefix.GetHashCode(); if (SwiftPrefix.Length != 0) hash ^= SwiftPrefix.GetHashCode();
if (PhpClassPrefix.Length != 0) hash ^= PhpClassPrefix.GetHashCode(); if (PhpClassPrefix.Length != 0) hash ^= PhpClassPrefix.GetHashCode();
if (PhpNamespace.Length != 0) hash ^= PhpNamespace.GetHashCode();
hash ^= uninterpretedOption_.GetHashCode(); hash ^= uninterpretedOption_.GetHashCode();
return hash; return hash;
} }
@ -3213,6 +3232,10 @@ namespace Google.Protobuf.Reflection {
output.WriteRawTag(194, 2); output.WriteRawTag(194, 2);
output.WriteString(PhpClassPrefix); output.WriteString(PhpClassPrefix);
} }
if (PhpNamespace.Length != 0) {
output.WriteRawTag(202, 2);
output.WriteString(PhpNamespace);
}
uninterpretedOption_.WriteTo(output, _repeated_uninterpretedOption_codec); uninterpretedOption_.WriteTo(output, _repeated_uninterpretedOption_codec);
} }
@ -3267,6 +3290,9 @@ namespace Google.Protobuf.Reflection {
if (PhpClassPrefix.Length != 0) { if (PhpClassPrefix.Length != 0) {
size += 2 + pb::CodedOutputStream.ComputeStringSize(PhpClassPrefix); size += 2 + pb::CodedOutputStream.ComputeStringSize(PhpClassPrefix);
} }
if (PhpNamespace.Length != 0) {
size += 2 + pb::CodedOutputStream.ComputeStringSize(PhpNamespace);
}
size += uninterpretedOption_.CalculateSize(_repeated_uninterpretedOption_codec); size += uninterpretedOption_.CalculateSize(_repeated_uninterpretedOption_codec);
return size; return size;
} }
@ -3324,6 +3350,9 @@ namespace Google.Protobuf.Reflection {
if (other.PhpClassPrefix.Length != 0) { if (other.PhpClassPrefix.Length != 0) {
PhpClassPrefix = other.PhpClassPrefix; PhpClassPrefix = other.PhpClassPrefix;
} }
if (other.PhpNamespace.Length != 0) {
PhpNamespace = other.PhpNamespace;
}
uninterpretedOption_.Add(other.uninterpretedOption_); uninterpretedOption_.Add(other.uninterpretedOption_);
} }
@ -3399,6 +3428,10 @@ namespace Google.Protobuf.Reflection {
PhpClassPrefix = input.ReadString(); PhpClassPrefix = input.ReadString();
break; break;
} }
case 330: {
PhpNamespace = input.ReadString();
break;
}
case 7994: { case 7994: {
uninterpretedOption_.AddEntriesFrom(input, _repeated_uninterpretedOption_codec); uninterpretedOption_.AddEntriesFrom(input, _repeated_uninterpretedOption_codec);
break; break;

@ -405,23 +405,34 @@ static const char *classname_prefix(const char *classname,
} }
static void convert_to_class_name_inplace(const char *package, static void convert_to_class_name_inplace(const char *package,
const char *namespace_given,
const char *prefix, char *classname) { const char *prefix, char *classname) {
size_t package_len = package == NULL ? 0 : strlen(package);
size_t prefix_len = prefix == NULL ? 0 : strlen(prefix); size_t prefix_len = prefix == NULL ? 0 : strlen(prefix);
size_t classname_len = strlen(classname); size_t classname_len = strlen(classname);
int i = 0, j; int i = 0, j;
bool first_char = true; bool first_char = true;
int offset = package_len != 0 ? 2 : 0; size_t package_len = package == NULL ? 0 : strlen(package);
size_t namespace_given_len =
namespace_given == NULL ? 0 : strlen(namespace_given);
bool use_namespace_given = namespace_given != NULL;
size_t namespace_len =
use_namespace_given ? namespace_given_len : package_len;
int offset = namespace_len != 0 ? 2 : 0;
for (j = 0; j < classname_len; j++) { for (j = 0; j < classname_len; j++) {
classname[package_len + prefix_len + classname_len + offset - 1 - j] = classname[namespace_len + prefix_len + classname_len + offset - 1 - j] =
classname[classname_len - j - 1]; classname[classname_len - j - 1];
} }
if (package_len != 0) { if (namespace_len != 0) {
classname[i++] = '\\'; classname[i++] = '\\';
for (j = 0; j < package_len; j++) { for (j = 0; j < namespace_len; j++) {
if (use_namespace_given) {
classname[i++] = namespace_given[j];
continue;
}
// php packages are divided by '\'. // php packages are divided by '\'.
if (package[j] == '.') { if (package[j] == '.') {
classname[i++] = '\\'; classname[i++] = '\\';
@ -490,16 +501,20 @@ PHP_METHOD(DescriptorPool, internalAddGeneratedFile) {
* bytes allocated, one for '.', one for trailing 0, and 3 for 'GPB' if \ * bytes allocated, one for '.', one for trailing 0, and 3 for 'GPB' if \
* given message is google.protobuf.Empty.*/ \ * given message is google.protobuf.Empty.*/ \
const char *fullname = upb_##def_type_lower##_fullname(def_type_lower); \ const char *fullname = upb_##def_type_lower##_fullname(def_type_lower); \
const char *php_namespace = upb_filedef_phpnamespace(files[0]); \
const char *prefix_given = upb_filedef_phpprefix(files[0]); \ const char *prefix_given = upb_filedef_phpprefix(files[0]); \
size_t classname_len = strlen(fullname) + 5; \ size_t classname_len = strlen(fullname) + 5; \
if (prefix_given != NULL) { \ if (prefix_given != NULL) { \
classname_len += strlen(prefix_given); \ classname_len += strlen(prefix_given); \
} \ } \
if (php_namespace != NULL) { \
classname_len += strlen(php_namespace); \
} \
char *classname = ecalloc(sizeof(char), classname_len); \ char *classname = ecalloc(sizeof(char), classname_len); \
const char *package = upb_filedef_package(files[0]); \ const char *package = upb_filedef_package(files[0]); \
classname_no_prefix(fullname, package, classname); \ classname_no_prefix(fullname, package, classname); \
const char *prefix = classname_prefix(classname, prefix_given, package); \ const char *prefix = classname_prefix(classname, prefix_given, package); \
convert_to_class_name_inplace(package, prefix, classname); \ convert_to_class_name_inplace(package, php_namespace, prefix, classname); \
PHP_PROTO_CE_DECLARE pce; \ PHP_PROTO_CE_DECLARE pce; \
if (php_proto_zend_lookup_class(classname, strlen(classname), &pce) == \ if (php_proto_zend_lookup_class(classname, strlen(classname), &pce) == \
FAILURE) { \ FAILURE) { \

@ -1859,6 +1859,7 @@ static void freefiledef(upb_refcounted *r) {
upb_gfree((void*)f->name); upb_gfree((void*)f->name);
upb_gfree((void*)f->package); upb_gfree((void*)f->package);
upb_gfree((void*)f->phpprefix); upb_gfree((void*)f->phpprefix);
upb_gfree((void*)f->phpnamespace);
upb_gfree(f); upb_gfree(f);
} }
@ -1874,6 +1875,7 @@ upb_filedef *upb_filedef_new(const void *owner) {
f->package = NULL; f->package = NULL;
f->name = NULL; f->name = NULL;
f->phpprefix = NULL; f->phpprefix = NULL;
f->phpnamespace = NULL;
f->syntax = UPB_SYNTAX_PROTO2; f->syntax = UPB_SYNTAX_PROTO2;
if (!upb_refcounted_init(upb_filedef_upcast_mutable(f), &upb_filedef_vtbl, if (!upb_refcounted_init(upb_filedef_upcast_mutable(f), &upb_filedef_vtbl,
@ -1912,6 +1914,10 @@ const char *upb_filedef_phpprefix(const upb_filedef *f) {
return f->phpprefix; return f->phpprefix;
} }
const char *upb_filedef_phpnamespace(const upb_filedef *f) {
return f->phpnamespace;
}
upb_syntax_t upb_filedef_syntax(const upb_filedef *f) { upb_syntax_t upb_filedef_syntax(const upb_filedef *f) {
return f->syntax; return f->syntax;
} }
@ -1980,6 +1986,18 @@ bool upb_filedef_setphpprefix(upb_filedef *f, const char *phpprefix,
return true; return true;
} }
bool upb_filedef_setphpnamespace(upb_filedef *f, const char *phpnamespace,
upb_status *s) {
phpnamespace = upb_gstrdup(phpnamespace);
if (!phpnamespace) {
upb_upberr_setoom(s);
return false;
}
upb_gfree((void*)f->phpnamespace);
f->phpnamespace = phpnamespace;
return true;
}
bool upb_filedef_setsyntax(upb_filedef *f, upb_syntax_t syntax, bool upb_filedef_setsyntax(upb_filedef *f, upb_syntax_t syntax,
upb_status *s) { upb_status *s) {
UPB_UNUSED(s); UPB_UNUSED(s);
@ -6419,14 +6437,14 @@ size_t upb_env_bytesallocated(const upb_env *e) {
static const upb_msgdef msgs[22]; static const upb_msgdef msgs[22];
static const upb_fielddef fields[106]; static const upb_fielddef fields[107];
static const upb_enumdef enums[5]; static const upb_enumdef enums[5];
static const upb_tabent strentries[236]; static const upb_tabent strentries[236];
static const upb_tabent intentries[18]; static const upb_tabent intentries[18];
static const upb_tabval arrays[186]; static const upb_tabval arrays[187];
#ifdef UPB_DEBUG_REFS #ifdef UPB_DEBUG_REFS
static upb_inttable reftables[266]; static upb_inttable reftables[268];
#endif #endif
static const upb_msgdef msgs[22] = { static const upb_msgdef msgs[22] = {
@ -6441,20 +6459,20 @@ static const upb_msgdef msgs[22] = {
UPB_MSGDEF_INIT("google.protobuf.FieldOptions", 12, 1, UPB_INTTABLE_INIT(1, 1, UPB_CTYPE_PTR, 1, &intentries[4], &arrays[42], 11, 6), UPB_STRTABLE_INIT(7, 15, UPB_CTYPE_PTR, 4, &strentries[56]), false, UPB_SYNTAX_PROTO2, &reftables[16], &reftables[17]), UPB_MSGDEF_INIT("google.protobuf.FieldOptions", 12, 1, UPB_INTTABLE_INIT(1, 1, UPB_CTYPE_PTR, 1, &intentries[4], &arrays[42], 11, 6), UPB_STRTABLE_INIT(7, 15, UPB_CTYPE_PTR, 4, &strentries[56]), false, UPB_SYNTAX_PROTO2, &reftables[16], &reftables[17]),
UPB_MSGDEF_INIT("google.protobuf.FileDescriptorProto", 42, 6, UPB_INTTABLE_INIT(0, 0, UPB_CTYPE_PTR, 0, NULL, &arrays[53], 13, 12), UPB_STRTABLE_INIT(12, 15, UPB_CTYPE_PTR, 4, &strentries[72]), false, UPB_SYNTAX_PROTO2, &reftables[18], &reftables[19]), UPB_MSGDEF_INIT("google.protobuf.FileDescriptorProto", 42, 6, UPB_INTTABLE_INIT(0, 0, UPB_CTYPE_PTR, 0, NULL, &arrays[53], 13, 12), UPB_STRTABLE_INIT(12, 15, UPB_CTYPE_PTR, 4, &strentries[72]), false, UPB_SYNTAX_PROTO2, &reftables[18], &reftables[19]),
UPB_MSGDEF_INIT("google.protobuf.FileDescriptorSet", 6, 1, UPB_INTTABLE_INIT(0, 0, UPB_CTYPE_PTR, 0, NULL, &arrays[66], 2, 1), UPB_STRTABLE_INIT(1, 3, UPB_CTYPE_PTR, 2, &strentries[88]), false, UPB_SYNTAX_PROTO2, &reftables[20], &reftables[21]), UPB_MSGDEF_INIT("google.protobuf.FileDescriptorSet", 6, 1, UPB_INTTABLE_INIT(0, 0, UPB_CTYPE_PTR, 0, NULL, &arrays[66], 2, 1), UPB_STRTABLE_INIT(1, 3, UPB_CTYPE_PTR, 2, &strentries[88]), false, UPB_SYNTAX_PROTO2, &reftables[20], &reftables[21]),
UPB_MSGDEF_INIT("google.protobuf.FileOptions", 34, 1, UPB_INTTABLE_INIT(1, 1, UPB_CTYPE_PTR, 1, &intentries[6], &arrays[68], 41, 16), UPB_STRTABLE_INIT(17, 31, UPB_CTYPE_PTR, 5, &strentries[92]), false, UPB_SYNTAX_PROTO2, &reftables[22], &reftables[23]), UPB_MSGDEF_INIT("google.protobuf.FileOptions", 37, 1, UPB_INTTABLE_INIT(1, 1, UPB_CTYPE_PTR, 1, &intentries[6], &arrays[68], 42, 17), UPB_STRTABLE_INIT(18, 31, UPB_CTYPE_PTR, 5, &strentries[92]), false, UPB_SYNTAX_PROTO2, &reftables[22], &reftables[23]),
UPB_MSGDEF_INIT("google.protobuf.MessageOptions", 10, 1, UPB_INTTABLE_INIT(1, 1, UPB_CTYPE_PTR, 1, &intentries[8], &arrays[109], 8, 4), UPB_STRTABLE_INIT(5, 7, UPB_CTYPE_PTR, 3, &strentries[124]), false, UPB_SYNTAX_PROTO2, &reftables[24], &reftables[25]), UPB_MSGDEF_INIT("google.protobuf.MessageOptions", 10, 1, UPB_INTTABLE_INIT(1, 1, UPB_CTYPE_PTR, 1, &intentries[8], &arrays[110], 8, 4), UPB_STRTABLE_INIT(5, 7, UPB_CTYPE_PTR, 3, &strentries[124]), false, UPB_SYNTAX_PROTO2, &reftables[24], &reftables[25]),
UPB_MSGDEF_INIT("google.protobuf.MethodDescriptorProto", 15, 1, UPB_INTTABLE_INIT(0, 0, UPB_CTYPE_PTR, 0, NULL, &arrays[117], 7, 6), UPB_STRTABLE_INIT(6, 7, UPB_CTYPE_PTR, 3, &strentries[132]), false, UPB_SYNTAX_PROTO2, &reftables[26], &reftables[27]), UPB_MSGDEF_INIT("google.protobuf.MethodDescriptorProto", 15, 1, UPB_INTTABLE_INIT(0, 0, UPB_CTYPE_PTR, 0, NULL, &arrays[118], 7, 6), UPB_STRTABLE_INIT(6, 7, UPB_CTYPE_PTR, 3, &strentries[132]), false, UPB_SYNTAX_PROTO2, &reftables[26], &reftables[27]),
UPB_MSGDEF_INIT("google.protobuf.MethodOptions", 7, 1, UPB_INTTABLE_INIT(2, 3, UPB_CTYPE_PTR, 2, &intentries[10], &arrays[124], 1, 0), UPB_STRTABLE_INIT(2, 3, UPB_CTYPE_PTR, 2, &strentries[140]), false, UPB_SYNTAX_PROTO2, &reftables[28], &reftables[29]), UPB_MSGDEF_INIT("google.protobuf.MethodOptions", 7, 1, UPB_INTTABLE_INIT(2, 3, UPB_CTYPE_PTR, 2, &intentries[10], &arrays[125], 1, 0), UPB_STRTABLE_INIT(2, 3, UPB_CTYPE_PTR, 2, &strentries[140]), false, UPB_SYNTAX_PROTO2, &reftables[28], &reftables[29]),
UPB_MSGDEF_INIT("google.protobuf.OneofDescriptorProto", 5, 0, UPB_INTTABLE_INIT(0, 0, UPB_CTYPE_PTR, 0, NULL, &arrays[125], 2, 1), UPB_STRTABLE_INIT(1, 3, UPB_CTYPE_PTR, 2, &strentries[144]), false, UPB_SYNTAX_PROTO2, &reftables[30], &reftables[31]), UPB_MSGDEF_INIT("google.protobuf.OneofDescriptorProto", 5, 0, UPB_INTTABLE_INIT(0, 0, UPB_CTYPE_PTR, 0, NULL, &arrays[126], 2, 1), UPB_STRTABLE_INIT(1, 3, UPB_CTYPE_PTR, 2, &strentries[144]), false, UPB_SYNTAX_PROTO2, &reftables[30], &reftables[31]),
UPB_MSGDEF_INIT("google.protobuf.ServiceDescriptorProto", 11, 2, UPB_INTTABLE_INIT(0, 0, UPB_CTYPE_PTR, 0, NULL, &arrays[127], 4, 3), UPB_STRTABLE_INIT(3, 3, UPB_CTYPE_PTR, 2, &strentries[148]), false, UPB_SYNTAX_PROTO2, &reftables[32], &reftables[33]), UPB_MSGDEF_INIT("google.protobuf.ServiceDescriptorProto", 11, 2, UPB_INTTABLE_INIT(0, 0, UPB_CTYPE_PTR, 0, NULL, &arrays[128], 4, 3), UPB_STRTABLE_INIT(3, 3, UPB_CTYPE_PTR, 2, &strentries[148]), false, UPB_SYNTAX_PROTO2, &reftables[32], &reftables[33]),
UPB_MSGDEF_INIT("google.protobuf.ServiceOptions", 7, 1, UPB_INTTABLE_INIT(2, 3, UPB_CTYPE_PTR, 2, &intentries[14], &arrays[131], 1, 0), UPB_STRTABLE_INIT(2, 3, UPB_CTYPE_PTR, 2, &strentries[152]), false, UPB_SYNTAX_PROTO2, &reftables[34], &reftables[35]), UPB_MSGDEF_INIT("google.protobuf.ServiceOptions", 7, 1, UPB_INTTABLE_INIT(2, 3, UPB_CTYPE_PTR, 2, &intentries[14], &arrays[132], 1, 0), UPB_STRTABLE_INIT(2, 3, UPB_CTYPE_PTR, 2, &strentries[152]), false, UPB_SYNTAX_PROTO2, &reftables[34], &reftables[35]),
UPB_MSGDEF_INIT("google.protobuf.SourceCodeInfo", 6, 1, UPB_INTTABLE_INIT(0, 0, UPB_CTYPE_PTR, 0, NULL, &arrays[132], 2, 1), UPB_STRTABLE_INIT(1, 3, UPB_CTYPE_PTR, 2, &strentries[156]), false, UPB_SYNTAX_PROTO2, &reftables[36], &reftables[37]), UPB_MSGDEF_INIT("google.protobuf.SourceCodeInfo", 6, 1, UPB_INTTABLE_INIT(0, 0, UPB_CTYPE_PTR, 0, NULL, &arrays[133], 2, 1), UPB_STRTABLE_INIT(1, 3, UPB_CTYPE_PTR, 2, &strentries[156]), false, UPB_SYNTAX_PROTO2, &reftables[36], &reftables[37]),
UPB_MSGDEF_INIT("google.protobuf.SourceCodeInfo.Location", 19, 0, UPB_INTTABLE_INIT(0, 0, UPB_CTYPE_PTR, 0, NULL, &arrays[134], 7, 5), UPB_STRTABLE_INIT(5, 7, UPB_CTYPE_PTR, 3, &strentries[160]), false, UPB_SYNTAX_PROTO2, &reftables[38], &reftables[39]), UPB_MSGDEF_INIT("google.protobuf.SourceCodeInfo.Location", 19, 0, UPB_INTTABLE_INIT(0, 0, UPB_CTYPE_PTR, 0, NULL, &arrays[135], 7, 5), UPB_STRTABLE_INIT(5, 7, UPB_CTYPE_PTR, 3, &strentries[160]), false, UPB_SYNTAX_PROTO2, &reftables[38], &reftables[39]),
UPB_MSGDEF_INIT("google.protobuf.UninterpretedOption", 18, 1, UPB_INTTABLE_INIT(0, 0, UPB_CTYPE_PTR, 0, NULL, &arrays[141], 9, 7), UPB_STRTABLE_INIT(7, 15, UPB_CTYPE_PTR, 4, &strentries[168]), false, UPB_SYNTAX_PROTO2, &reftables[40], &reftables[41]), UPB_MSGDEF_INIT("google.protobuf.UninterpretedOption", 18, 1, UPB_INTTABLE_INIT(0, 0, UPB_CTYPE_PTR, 0, NULL, &arrays[142], 9, 7), UPB_STRTABLE_INIT(7, 15, UPB_CTYPE_PTR, 4, &strentries[168]), false, UPB_SYNTAX_PROTO2, &reftables[40], &reftables[41]),
UPB_MSGDEF_INIT("google.protobuf.UninterpretedOption.NamePart", 6, 0, UPB_INTTABLE_INIT(0, 0, UPB_CTYPE_PTR, 0, NULL, &arrays[150], 3, 2), UPB_STRTABLE_INIT(2, 3, UPB_CTYPE_PTR, 2, &strentries[184]), false, UPB_SYNTAX_PROTO2, &reftables[42], &reftables[43]), UPB_MSGDEF_INIT("google.protobuf.UninterpretedOption.NamePart", 6, 0, UPB_INTTABLE_INIT(0, 0, UPB_CTYPE_PTR, 0, NULL, &arrays[151], 3, 2), UPB_STRTABLE_INIT(2, 3, UPB_CTYPE_PTR, 2, &strentries[184]), false, UPB_SYNTAX_PROTO2, &reftables[42], &reftables[43]),
}; };
static const upb_fielddef fields[106] = { static const upb_fielddef fields[107] = {
UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_STRING, 0, false, false, false, false, "aggregate_value", 8, &msgs[20], NULL, 15, 6, {0},&reftables[44], &reftables[45]), UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_STRING, 0, false, false, false, false, "aggregate_value", 8, &msgs[20], NULL, 15, 6, {0},&reftables[44], &reftables[45]),
UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_BOOL, 0, false, false, false, false, "allow_alias", 2, &msgs[4], NULL, 6, 1, {0},&reftables[46], &reftables[47]), UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_BOOL, 0, false, false, false, false, "allow_alias", 2, &msgs[4], NULL, 6, 1, {0},&reftables[46], &reftables[47]),
UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_BOOL, 0, false, false, false, false, "cc_enable_arenas", 31, &msgs[11], NULL, 23, 12, {0},&reftables[48], &reftables[49]), UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_BOOL, 0, false, false, false, false, "cc_enable_arenas", 31, &msgs[11], NULL, 23, 12, {0},&reftables[48], &reftables[49]),
@ -6505,77 +6523,78 @@ static const upb_fielddef fields[106] = {
UPB_FIELDDEF_INIT(UPB_LABEL_REPEATED, UPB_TYPE_MESSAGE, 0, false, false, false, false, "message_type", 4, &msgs[9], (const upb_def*)(&msgs[0]), 10, 0, {0},&reftables[138], &reftables[139]), UPB_FIELDDEF_INIT(UPB_LABEL_REPEATED, UPB_TYPE_MESSAGE, 0, false, false, false, false, "message_type", 4, &msgs[9], (const upb_def*)(&msgs[0]), 10, 0, {0},&reftables[138], &reftables[139]),
UPB_FIELDDEF_INIT(UPB_LABEL_REPEATED, UPB_TYPE_MESSAGE, 0, false, false, false, false, "method", 2, &msgs[16], (const upb_def*)(&msgs[13]), 6, 0, {0},&reftables[140], &reftables[141]), UPB_FIELDDEF_INIT(UPB_LABEL_REPEATED, UPB_TYPE_MESSAGE, 0, false, false, false, false, "method", 2, &msgs[16], (const upb_def*)(&msgs[13]), 6, 0, {0},&reftables[140], &reftables[141]),
UPB_FIELDDEF_INIT(UPB_LABEL_REPEATED, UPB_TYPE_MESSAGE, 0, false, false, false, false, "name", 2, &msgs[20], (const upb_def*)(&msgs[21]), 5, 0, {0},&reftables[142], &reftables[143]), UPB_FIELDDEF_INIT(UPB_LABEL_REPEATED, UPB_TYPE_MESSAGE, 0, false, false, false, false, "name", 2, &msgs[20], (const upb_def*)(&msgs[21]), 5, 0, {0},&reftables[142], &reftables[143]),
UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_STRING, 0, false, false, false, false, "name", 1, &msgs[0], NULL, 32, 8, {0},&reftables[144], &reftables[145]), UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_STRING, 0, false, false, false, false, "name", 1, &msgs[5], NULL, 4, 1, {0},&reftables[144], &reftables[145]),
UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_STRING, 0, false, false, false, false, "name", 1, &msgs[5], NULL, 4, 1, {0},&reftables[146], &reftables[147]), UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_STRING, 0, false, false, false, false, "name", 1, &msgs[9], NULL, 22, 6, {0},&reftables[146], &reftables[147]),
UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_STRING, 0, false, false, false, false, "name", 1, &msgs[13], NULL, 4, 1, {0},&reftables[148], &reftables[149]), UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_STRING, 0, false, false, false, false, "name", 1, &msgs[3], NULL, 8, 2, {0},&reftables[148], &reftables[149]),
UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_STRING, 0, false, false, false, false, "name", 1, &msgs[16], NULL, 8, 2, {0},&reftables[150], &reftables[151]), UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_STRING, 0, false, false, false, false, "name", 1, &msgs[16], NULL, 8, 2, {0},&reftables[150], &reftables[151]),
UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_STRING, 0, false, false, false, false, "name", 1, &msgs[3], NULL, 8, 2, {0},&reftables[152], &reftables[153]), UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_STRING, 0, false, false, false, false, "name", 1, &msgs[15], NULL, 2, 0, {0},&reftables[152], &reftables[153]),
UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_STRING, 0, false, false, false, false, "name", 1, &msgs[15], NULL, 2, 0, {0},&reftables[154], &reftables[155]), UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_STRING, 0, false, false, false, false, "name", 1, &msgs[13], NULL, 4, 1, {0},&reftables[154], &reftables[155]),
UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_STRING, 0, false, false, false, false, "name", 1, &msgs[7], NULL, 4, 1, {0},&reftables[156], &reftables[157]), UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_STRING, 0, false, false, false, false, "name", 1, &msgs[7], NULL, 4, 1, {0},&reftables[156], &reftables[157]),
UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_STRING, 0, false, false, false, false, "name", 1, &msgs[9], NULL, 22, 6, {0},&reftables[158], &reftables[159]), UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_STRING, 0, false, false, false, false, "name", 1, &msgs[0], NULL, 32, 8, {0},&reftables[158], &reftables[159]),
UPB_FIELDDEF_INIT(UPB_LABEL_REQUIRED, UPB_TYPE_STRING, 0, false, false, false, false, "name_part", 1, &msgs[21], NULL, 2, 0, {0},&reftables[160], &reftables[161]), UPB_FIELDDEF_INIT(UPB_LABEL_REQUIRED, UPB_TYPE_STRING, 0, false, false, false, false, "name_part", 1, &msgs[21], NULL, 2, 0, {0},&reftables[160], &reftables[161]),
UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_INT64, UPB_INTFMT_VARIABLE, false, false, false, false, "negative_int_value", 5, &msgs[20], NULL, 10, 3, {0},&reftables[162], &reftables[163]), UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_INT64, UPB_INTFMT_VARIABLE, false, false, false, false, "negative_int_value", 5, &msgs[20], NULL, 10, 3, {0},&reftables[162], &reftables[163]),
UPB_FIELDDEF_INIT(UPB_LABEL_REPEATED, UPB_TYPE_MESSAGE, 0, false, false, false, false, "nested_type", 3, &msgs[0], (const upb_def*)(&msgs[0]), 15, 1, {0},&reftables[164], &reftables[165]), UPB_FIELDDEF_INIT(UPB_LABEL_REPEATED, UPB_TYPE_MESSAGE, 0, false, false, false, false, "nested_type", 3, &msgs[0], (const upb_def*)(&msgs[0]), 15, 1, {0},&reftables[164], &reftables[165]),
UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_BOOL, 0, false, false, false, false, "no_standard_descriptor_accessor", 2, &msgs[12], NULL, 7, 2, {0},&reftables[166], &reftables[167]), UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_BOOL, 0, false, false, false, false, "no_standard_descriptor_accessor", 2, &msgs[12], NULL, 7, 2, {0},&reftables[166], &reftables[167]),
UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_INT32, UPB_INTFMT_VARIABLE, false, false, false, false, "number", 2, &msgs[5], NULL, 7, 2, {0},&reftables[168], &reftables[169]), UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_INT32, UPB_INTFMT_VARIABLE, false, false, false, false, "number", 3, &msgs[7], NULL, 10, 3, {0},&reftables[168], &reftables[169]),
UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_INT32, UPB_INTFMT_VARIABLE, false, false, false, false, "number", 3, &msgs[7], NULL, 10, 3, {0},&reftables[170], &reftables[171]), UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_INT32, UPB_INTFMT_VARIABLE, false, false, false, false, "number", 2, &msgs[5], NULL, 7, 2, {0},&reftables[170], &reftables[171]),
UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_STRING, 0, false, false, false, false, "objc_class_prefix", 36, &msgs[11], NULL, 24, 13, {0},&reftables[172], &reftables[173]), UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_STRING, 0, false, false, false, false, "objc_class_prefix", 36, &msgs[11], NULL, 24, 13, {0},&reftables[172], &reftables[173]),
UPB_FIELDDEF_INIT(UPB_LABEL_REPEATED, UPB_TYPE_MESSAGE, 0, false, false, false, false, "oneof_decl", 8, &msgs[0], (const upb_def*)(&msgs[15]), 28, 6, {0},&reftables[174], &reftables[175]), UPB_FIELDDEF_INIT(UPB_LABEL_REPEATED, UPB_TYPE_MESSAGE, 0, false, false, false, false, "oneof_decl", 8, &msgs[0], (const upb_def*)(&msgs[15]), 28, 6, {0},&reftables[174], &reftables[175]),
UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_INT32, UPB_INTFMT_VARIABLE, false, false, false, false, "oneof_index", 9, &msgs[7], NULL, 19, 8, {0},&reftables[176], &reftables[177]), UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_INT32, UPB_INTFMT_VARIABLE, false, false, false, false, "oneof_index", 9, &msgs[7], NULL, 19, 8, {0},&reftables[176], &reftables[177]),
UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_ENUM, 0, false, false, false, false, "optimize_for", 9, &msgs[11], (const upb_def*)(&enums[4]), 12, 3, {0},&reftables[178], &reftables[179]), UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_ENUM, 0, false, false, false, false, "optimize_for", 9, &msgs[11], (const upb_def*)(&enums[4]), 12, 3, {0},&reftables[178], &reftables[179]),
UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_MESSAGE, 0, false, false, false, false, "options", 8, &msgs[9], (const upb_def*)(&msgs[11]), 20, 4, {0},&reftables[180], &reftables[181]), UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_MESSAGE, 0, false, false, false, false, "options", 7, &msgs[0], (const upb_def*)(&msgs[12]), 25, 5, {0},&reftables[180], &reftables[181]),
UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_MESSAGE, 0, false, false, false, false, "options", 7, &msgs[0], (const upb_def*)(&msgs[12]), 25, 5, {0},&reftables[182], &reftables[183]), UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_MESSAGE, 0, false, false, false, false, "options", 8, &msgs[9], (const upb_def*)(&msgs[11]), 20, 4, {0},&reftables[182], &reftables[183]),
UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_MESSAGE, 0, false, false, false, false, "options", 4, &msgs[13], (const upb_def*)(&msgs[14]), 3, 0, {0},&reftables[184], &reftables[185]), UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_MESSAGE, 0, false, false, false, false, "options", 8, &msgs[7], (const upb_def*)(&msgs[8]), 3, 0, {0},&reftables[184], &reftables[185]),
UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_MESSAGE, 0, false, false, false, false, "options", 8, &msgs[7], (const upb_def*)(&msgs[8]), 3, 0, {0},&reftables[186], &reftables[187]), UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_MESSAGE, 0, false, false, false, false, "options", 4, &msgs[13], (const upb_def*)(&msgs[14]), 3, 0, {0},&reftables[186], &reftables[187]),
UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_MESSAGE, 0, false, false, false, false, "options", 3, &msgs[5], (const upb_def*)(&msgs[6]), 3, 0, {0},&reftables[188], &reftables[189]), UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_MESSAGE, 0, false, false, false, false, "options", 3, &msgs[16], (const upb_def*)(&msgs[17]), 7, 1, {0},&reftables[188], &reftables[189]),
UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_MESSAGE, 0, false, false, false, false, "options", 3, &msgs[16], (const upb_def*)(&msgs[17]), 7, 1, {0},&reftables[190], &reftables[191]), UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_MESSAGE, 0, false, false, false, false, "options", 3, &msgs[3], (const upb_def*)(&msgs[4]), 7, 1, {0},&reftables[190], &reftables[191]),
UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_MESSAGE, 0, false, false, false, false, "options", 3, &msgs[3], (const upb_def*)(&msgs[4]), 7, 1, {0},&reftables[192], &reftables[193]), UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_MESSAGE, 0, false, false, false, false, "options", 3, &msgs[5], (const upb_def*)(&msgs[6]), 3, 0, {0},&reftables[192], &reftables[193]),
UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_STRING, 0, false, false, false, false, "output_type", 3, &msgs[13], NULL, 10, 3, {0},&reftables[194], &reftables[195]), UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_STRING, 0, false, false, false, false, "output_type", 3, &msgs[13], NULL, 10, 3, {0},&reftables[194], &reftables[195]),
UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_STRING, 0, false, false, false, false, "package", 2, &msgs[9], NULL, 25, 7, {0},&reftables[196], &reftables[197]), UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_STRING, 0, false, false, false, false, "package", 2, &msgs[9], NULL, 25, 7, {0},&reftables[196], &reftables[197]),
UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_BOOL, 0, false, false, false, false, "packed", 2, &msgs[8], NULL, 7, 2, {0},&reftables[198], &reftables[199]), UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_BOOL, 0, false, false, false, false, "packed", 2, &msgs[8], NULL, 7, 2, {0},&reftables[198], &reftables[199]),
UPB_FIELDDEF_INIT(UPB_LABEL_REPEATED, UPB_TYPE_INT32, UPB_INTFMT_VARIABLE, false, false, false, true, "path", 1, &msgs[19], NULL, 4, 0, {0},&reftables[200], &reftables[201]), UPB_FIELDDEF_INIT(UPB_LABEL_REPEATED, UPB_TYPE_INT32, UPB_INTFMT_VARIABLE, false, false, false, true, "path", 1, &msgs[19], NULL, 4, 0, {0},&reftables[200], &reftables[201]),
UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_STRING, 0, false, false, false, false, "php_class_prefix", 40, &msgs[11], NULL, 31, 16, {0},&reftables[202], &reftables[203]), UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_STRING, 0, false, false, false, false, "php_class_prefix", 40, &msgs[11], NULL, 31, 16, {0},&reftables[202], &reftables[203]),
UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_UINT64, UPB_INTFMT_VARIABLE, false, false, false, false, "positive_int_value", 4, &msgs[20], NULL, 9, 2, {0},&reftables[204], &reftables[205]), UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_STRING, 0, false, false, false, false, "php_namespace", 41, &msgs[11], NULL, 34, 17, {0},&reftables[204], &reftables[205]),
UPB_FIELDDEF_INIT(UPB_LABEL_REPEATED, UPB_TYPE_INT32, UPB_INTFMT_VARIABLE, false, false, false, false, "public_dependency", 10, &msgs[9], NULL, 35, 9, {0},&reftables[206], &reftables[207]), UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_UINT64, UPB_INTFMT_VARIABLE, false, false, false, false, "positive_int_value", 4, &msgs[20], NULL, 9, 2, {0},&reftables[206], &reftables[207]),
UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_BOOL, 0, false, false, false, false, "py_generic_services", 18, &msgs[11], NULL, 19, 8, {0},&reftables[208], &reftables[209]), UPB_FIELDDEF_INIT(UPB_LABEL_REPEATED, UPB_TYPE_INT32, UPB_INTFMT_VARIABLE, false, false, false, false, "public_dependency", 10, &msgs[9], NULL, 35, 9, {0},&reftables[208], &reftables[209]),
UPB_FIELDDEF_INIT(UPB_LABEL_REPEATED, UPB_TYPE_STRING, 0, false, false, false, false, "reserved_name", 10, &msgs[0], NULL, 37, 9, {0},&reftables[210], &reftables[211]), UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_BOOL, 0, false, false, false, false, "py_generic_services", 18, &msgs[11], NULL, 19, 8, {0},&reftables[210], &reftables[211]),
UPB_FIELDDEF_INIT(UPB_LABEL_REPEATED, UPB_TYPE_MESSAGE, 0, false, false, false, false, "reserved_range", 9, &msgs[0], (const upb_def*)(&msgs[2]), 31, 7, {0},&reftables[212], &reftables[213]), UPB_FIELDDEF_INIT(UPB_LABEL_REPEATED, UPB_TYPE_STRING, 0, false, false, false, false, "reserved_name", 10, &msgs[0], NULL, 37, 9, {0},&reftables[212], &reftables[213]),
UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_BOOL, 0, false, false, false, false, "server_streaming", 6, &msgs[13], NULL, 14, 5, {0},&reftables[214], &reftables[215]), UPB_FIELDDEF_INIT(UPB_LABEL_REPEATED, UPB_TYPE_MESSAGE, 0, false, false, false, false, "reserved_range", 9, &msgs[0], (const upb_def*)(&msgs[2]), 31, 7, {0},&reftables[214], &reftables[215]),
UPB_FIELDDEF_INIT(UPB_LABEL_REPEATED, UPB_TYPE_MESSAGE, 0, false, false, false, false, "service", 6, &msgs[9], (const upb_def*)(&msgs[16]), 16, 2, {0},&reftables[216], &reftables[217]), UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_BOOL, 0, false, false, false, false, "server_streaming", 6, &msgs[13], NULL, 14, 5, {0},&reftables[216], &reftables[217]),
UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_MESSAGE, 0, false, false, false, false, "source_code_info", 9, &msgs[9], (const upb_def*)(&msgs[18]), 21, 5, {0},&reftables[218], &reftables[219]), UPB_FIELDDEF_INIT(UPB_LABEL_REPEATED, UPB_TYPE_MESSAGE, 0, false, false, false, false, "service", 6, &msgs[9], (const upb_def*)(&msgs[16]), 16, 2, {0},&reftables[218], &reftables[219]),
UPB_FIELDDEF_INIT(UPB_LABEL_REPEATED, UPB_TYPE_INT32, UPB_INTFMT_VARIABLE, false, false, false, true, "span", 2, &msgs[19], NULL, 7, 1, {0},&reftables[220], &reftables[221]), UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_MESSAGE, 0, false, false, false, false, "source_code_info", 9, &msgs[9], (const upb_def*)(&msgs[18]), 21, 5, {0},&reftables[220], &reftables[221]),
UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_INT32, UPB_INTFMT_VARIABLE, false, false, false, false, "start", 1, &msgs[2], NULL, 2, 0, {0},&reftables[222], &reftables[223]), UPB_FIELDDEF_INIT(UPB_LABEL_REPEATED, UPB_TYPE_INT32, UPB_INTFMT_VARIABLE, false, false, false, true, "span", 2, &msgs[19], NULL, 7, 1, {0},&reftables[222], &reftables[223]),
UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_INT32, UPB_INTFMT_VARIABLE, false, false, false, false, "start", 1, &msgs[1], NULL, 2, 0, {0},&reftables[224], &reftables[225]), UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_INT32, UPB_INTFMT_VARIABLE, false, false, false, false, "start", 1, &msgs[2], NULL, 2, 0, {0},&reftables[224], &reftables[225]),
UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_BYTES, 0, false, false, false, false, "string_value", 7, &msgs[20], NULL, 12, 5, {0},&reftables[226], &reftables[227]), UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_INT32, UPB_INTFMT_VARIABLE, false, false, false, false, "start", 1, &msgs[1], NULL, 2, 0, {0},&reftables[226], &reftables[227]),
UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_STRING, 0, false, false, false, false, "syntax", 12, &msgs[9], NULL, 39, 11, {0},&reftables[228], &reftables[229]), UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_BYTES, 0, false, false, false, false, "string_value", 7, &msgs[20], NULL, 12, 5, {0},&reftables[228], &reftables[229]),
UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_STRING, 0, false, false, false, false, "trailing_comments", 4, &msgs[19], NULL, 11, 3, {0},&reftables[230], &reftables[231]), UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_STRING, 0, false, false, false, false, "syntax", 12, &msgs[9], NULL, 39, 11, {0},&reftables[230], &reftables[231]),
UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_ENUM, 0, false, false, false, false, "type", 5, &msgs[7], (const upb_def*)(&enums[1]), 12, 5, {0},&reftables[232], &reftables[233]), UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_STRING, 0, false, false, false, false, "trailing_comments", 4, &msgs[19], NULL, 11, 3, {0},&reftables[232], &reftables[233]),
UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_STRING, 0, false, false, false, false, "type_name", 6, &msgs[7], NULL, 13, 6, {0},&reftables[234], &reftables[235]), UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_ENUM, 0, false, false, false, false, "type", 5, &msgs[7], (const upb_def*)(&enums[1]), 12, 5, {0},&reftables[234], &reftables[235]),
UPB_FIELDDEF_INIT(UPB_LABEL_REPEATED, UPB_TYPE_MESSAGE, 0, false, false, false, false, "uninterpreted_option", 999, &msgs[14], (const upb_def*)(&msgs[20]), 5, 0, {0},&reftables[236], &reftables[237]), UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_STRING, 0, false, false, false, false, "type_name", 6, &msgs[7], NULL, 13, 6, {0},&reftables[236], &reftables[237]),
UPB_FIELDDEF_INIT(UPB_LABEL_REPEATED, UPB_TYPE_MESSAGE, 0, false, false, false, false, "uninterpreted_option", 999, &msgs[12], (const upb_def*)(&msgs[20]), 5, 0, {0},&reftables[238], &reftables[239]), UPB_FIELDDEF_INIT(UPB_LABEL_REPEATED, UPB_TYPE_MESSAGE, 0, false, false, false, false, "uninterpreted_option", 999, &msgs[12], (const upb_def*)(&msgs[20]), 5, 0, {0},&reftables[238], &reftables[239]),
UPB_FIELDDEF_INIT(UPB_LABEL_REPEATED, UPB_TYPE_MESSAGE, 0, false, false, false, false, "uninterpreted_option", 999, &msgs[17], (const upb_def*)(&msgs[20]), 5, 0, {0},&reftables[240], &reftables[241]), UPB_FIELDDEF_INIT(UPB_LABEL_REPEATED, UPB_TYPE_MESSAGE, 0, false, false, false, false, "uninterpreted_option", 999, &msgs[17], (const upb_def*)(&msgs[20]), 5, 0, {0},&reftables[240], &reftables[241]),
UPB_FIELDDEF_INIT(UPB_LABEL_REPEATED, UPB_TYPE_MESSAGE, 0, false, false, false, false, "uninterpreted_option", 999, &msgs[8], (const upb_def*)(&msgs[20]), 5, 0, {0},&reftables[242], &reftables[243]), UPB_FIELDDEF_INIT(UPB_LABEL_REPEATED, UPB_TYPE_MESSAGE, 0, false, false, false, false, "uninterpreted_option", 999, &msgs[11], (const upb_def*)(&msgs[20]), 5, 0, {0},&reftables[242], &reftables[243]),
UPB_FIELDDEF_INIT(UPB_LABEL_REPEATED, UPB_TYPE_MESSAGE, 0, false, false, false, false, "uninterpreted_option", 999, &msgs[11], (const upb_def*)(&msgs[20]), 5, 0, {0},&reftables[244], &reftables[245]), UPB_FIELDDEF_INIT(UPB_LABEL_REPEATED, UPB_TYPE_MESSAGE, 0, false, false, false, false, "uninterpreted_option", 999, &msgs[14], (const upb_def*)(&msgs[20]), 5, 0, {0},&reftables[244], &reftables[245]),
UPB_FIELDDEF_INIT(UPB_LABEL_REPEATED, UPB_TYPE_MESSAGE, 0, false, false, false, false, "uninterpreted_option", 999, &msgs[6], (const upb_def*)(&msgs[20]), 5, 0, {0},&reftables[246], &reftables[247]), UPB_FIELDDEF_INIT(UPB_LABEL_REPEATED, UPB_TYPE_MESSAGE, 0, false, false, false, false, "uninterpreted_option", 999, &msgs[8], (const upb_def*)(&msgs[20]), 5, 0, {0},&reftables[246], &reftables[247]),
UPB_FIELDDEF_INIT(UPB_LABEL_REPEATED, UPB_TYPE_MESSAGE, 0, false, false, false, false, "uninterpreted_option", 999, &msgs[4], (const upb_def*)(&msgs[20]), 5, 0, {0},&reftables[248], &reftables[249]), UPB_FIELDDEF_INIT(UPB_LABEL_REPEATED, UPB_TYPE_MESSAGE, 0, false, false, false, false, "uninterpreted_option", 999, &msgs[6], (const upb_def*)(&msgs[20]), 5, 0, {0},&reftables[248], &reftables[249]),
UPB_FIELDDEF_INIT(UPB_LABEL_REPEATED, UPB_TYPE_MESSAGE, 0, false, false, false, false, "value", 2, &msgs[3], (const upb_def*)(&msgs[5]), 6, 0, {0},&reftables[250], &reftables[251]), UPB_FIELDDEF_INIT(UPB_LABEL_REPEATED, UPB_TYPE_MESSAGE, 0, false, false, false, false, "uninterpreted_option", 999, &msgs[4], (const upb_def*)(&msgs[20]), 5, 0, {0},&reftables[250], &reftables[251]),
UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_BOOL, 0, false, false, false, false, "weak", 10, &msgs[8], NULL, 11, 6, {0},&reftables[252], &reftables[253]), UPB_FIELDDEF_INIT(UPB_LABEL_REPEATED, UPB_TYPE_MESSAGE, 0, false, false, false, false, "value", 2, &msgs[3], (const upb_def*)(&msgs[5]), 6, 0, {0},&reftables[252], &reftables[253]),
UPB_FIELDDEF_INIT(UPB_LABEL_REPEATED, UPB_TYPE_INT32, UPB_INTFMT_VARIABLE, false, false, false, false, "weak_dependency", 11, &msgs[9], NULL, 38, 10, {0},&reftables[254], &reftables[255]), UPB_FIELDDEF_INIT(UPB_LABEL_OPTIONAL, UPB_TYPE_BOOL, 0, false, false, false, false, "weak", 10, &msgs[8], NULL, 11, 6, {0},&reftables[254], &reftables[255]),
UPB_FIELDDEF_INIT(UPB_LABEL_REPEATED, UPB_TYPE_INT32, UPB_INTFMT_VARIABLE, false, false, false, false, "weak_dependency", 11, &msgs[9], NULL, 38, 10, {0},&reftables[256], &reftables[257]),
}; };
static const upb_enumdef enums[5] = { static const upb_enumdef enums[5] = {
UPB_ENUMDEF_INIT("google.protobuf.FieldDescriptorProto.Label", UPB_STRTABLE_INIT(3, 3, UPB_CTYPE_INT32, 2, &strentries[188]), UPB_INTTABLE_INIT(0, 0, UPB_CTYPE_CSTR, 0, NULL, &arrays[153], 4, 3), 0, &reftables[256], &reftables[257]), UPB_ENUMDEF_INIT("google.protobuf.FieldDescriptorProto.Label", UPB_STRTABLE_INIT(3, 3, UPB_CTYPE_INT32, 2, &strentries[188]), UPB_INTTABLE_INIT(0, 0, UPB_CTYPE_CSTR, 0, NULL, &arrays[154], 4, 3), 0, &reftables[258], &reftables[259]),
UPB_ENUMDEF_INIT("google.protobuf.FieldDescriptorProto.Type", UPB_STRTABLE_INIT(18, 31, UPB_CTYPE_INT32, 5, &strentries[192]), UPB_INTTABLE_INIT(0, 0, UPB_CTYPE_CSTR, 0, NULL, &arrays[157], 19, 18), 0, &reftables[258], &reftables[259]), UPB_ENUMDEF_INIT("google.protobuf.FieldDescriptorProto.Type", UPB_STRTABLE_INIT(18, 31, UPB_CTYPE_INT32, 5, &strentries[192]), UPB_INTTABLE_INIT(0, 0, UPB_CTYPE_CSTR, 0, NULL, &arrays[158], 19, 18), 0, &reftables[260], &reftables[261]),
UPB_ENUMDEF_INIT("google.protobuf.FieldOptions.CType", UPB_STRTABLE_INIT(3, 3, UPB_CTYPE_INT32, 2, &strentries[224]), UPB_INTTABLE_INIT(0, 0, UPB_CTYPE_CSTR, 0, NULL, &arrays[176], 3, 3), 0, &reftables[260], &reftables[261]), UPB_ENUMDEF_INIT("google.protobuf.FieldOptions.CType", UPB_STRTABLE_INIT(3, 3, UPB_CTYPE_INT32, 2, &strentries[224]), UPB_INTTABLE_INIT(0, 0, UPB_CTYPE_CSTR, 0, NULL, &arrays[177], 3, 3), 0, &reftables[262], &reftables[263]),
UPB_ENUMDEF_INIT("google.protobuf.FieldOptions.JSType", UPB_STRTABLE_INIT(3, 3, UPB_CTYPE_INT32, 2, &strentries[228]), UPB_INTTABLE_INIT(0, 0, UPB_CTYPE_CSTR, 0, NULL, &arrays[179], 3, 3), 0, &reftables[262], &reftables[263]), UPB_ENUMDEF_INIT("google.protobuf.FieldOptions.JSType", UPB_STRTABLE_INIT(3, 3, UPB_CTYPE_INT32, 2, &strentries[228]), UPB_INTTABLE_INIT(0, 0, UPB_CTYPE_CSTR, 0, NULL, &arrays[180], 3, 3), 0, &reftables[264], &reftables[265]),
UPB_ENUMDEF_INIT("google.protobuf.FileOptions.OptimizeMode", UPB_STRTABLE_INIT(3, 3, UPB_CTYPE_INT32, 2, &strentries[232]), UPB_INTTABLE_INIT(0, 0, UPB_CTYPE_CSTR, 0, NULL, &arrays[182], 4, 3), 0, &reftables[264], &reftables[265]), UPB_ENUMDEF_INIT("google.protobuf.FileOptions.OptimizeMode", UPB_STRTABLE_INIT(3, 3, UPB_CTYPE_INT32, 2, &strentries[232]), UPB_INTTABLE_INIT(0, 0, UPB_CTYPE_CSTR, 0, NULL, &arrays[183], 4, 3), 0, &reftables[266], &reftables[267]),
}; };
static const upb_tabent strentries[236] = { static const upb_tabent strentries[236] = {
{UPB_TABKEY_STR("\011", "\000", "\000", "\000", "extension"), UPB_TABVALUE_PTR_INIT(&fields[22]), NULL}, {UPB_TABKEY_STR("\011", "\000", "\000", "\000", "extension"), UPB_TABVALUE_PTR_INIT(&fields[22]), NULL},
{UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL}, {UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL},
{UPB_TABKEY_STR("\015", "\000", "\000", "\000", "reserved_name"), UPB_TABVALUE_PTR_INIT(&fields[83]), NULL}, {UPB_TABKEY_STR("\015", "\000", "\000", "\000", "reserved_name"), UPB_TABVALUE_PTR_INIT(&fields[84]), NULL},
{UPB_TABKEY_STR("\004", "\000", "\000", "\000", "name"), UPB_TABVALUE_PTR_INIT(&fields[50]), NULL}, {UPB_TABKEY_STR("\004", "\000", "\000", "\000", "name"), UPB_TABVALUE_PTR_INIT(&fields[57]), NULL},
{UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL}, {UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL},
{UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL}, {UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL},
{UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL}, {UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL},
@ -6584,31 +6603,31 @@ static const upb_tabent strentries[236] = {
{UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL}, {UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL},
{UPB_TABKEY_STR("\013", "\000", "\000", "\000", "nested_type"), UPB_TABVALUE_PTR_INIT(&fields[60]), NULL}, {UPB_TABKEY_STR("\013", "\000", "\000", "\000", "nested_type"), UPB_TABVALUE_PTR_INIT(&fields[60]), NULL},
{UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL}, {UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL},
{UPB_TABKEY_STR("\016", "\000", "\000", "\000", "reserved_range"), UPB_TABVALUE_PTR_INIT(&fields[84]), NULL}, {UPB_TABKEY_STR("\016", "\000", "\000", "\000", "reserved_range"), UPB_TABVALUE_PTR_INIT(&fields[85]), NULL},
{UPB_TABKEY_STR("\007", "\000", "\000", "\000", "options"), UPB_TABVALUE_PTR_INIT(&fields[69]), NULL}, {UPB_TABKEY_STR("\007", "\000", "\000", "\000", "options"), UPB_TABVALUE_PTR_INIT(&fields[68]), NULL},
{UPB_TABKEY_STR("\012", "\000", "\000", "\000", "oneof_decl"), UPB_TABVALUE_PTR_INIT(&fields[65]), NULL}, {UPB_TABKEY_STR("\012", "\000", "\000", "\000", "oneof_decl"), UPB_TABVALUE_PTR_INIT(&fields[65]), NULL},
{UPB_TABKEY_STR("\011", "\000", "\000", "\000", "enum_type"), UPB_TABVALUE_PTR_INIT(&fields[20]), &strentries[13]}, {UPB_TABKEY_STR("\011", "\000", "\000", "\000", "enum_type"), UPB_TABVALUE_PTR_INIT(&fields[20]), &strentries[13]},
{UPB_TABKEY_STR("\005", "\000", "\000", "\000", "start"), UPB_TABVALUE_PTR_INIT(&fields[90]), NULL}, {UPB_TABKEY_STR("\005", "\000", "\000", "\000", "start"), UPB_TABVALUE_PTR_INIT(&fields[91]), NULL},
{UPB_TABKEY_STR("\003", "\000", "\000", "\000", "end"), UPB_TABVALUE_PTR_INIT(&fields[18]), NULL}, {UPB_TABKEY_STR("\003", "\000", "\000", "\000", "end"), UPB_TABVALUE_PTR_INIT(&fields[18]), NULL},
{UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL}, {UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL},
{UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL}, {UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL},
{UPB_TABKEY_STR("\005", "\000", "\000", "\000", "start"), UPB_TABVALUE_PTR_INIT(&fields[89]), NULL}, {UPB_TABKEY_STR("\005", "\000", "\000", "\000", "start"), UPB_TABVALUE_PTR_INIT(&fields[90]), NULL},
{UPB_TABKEY_STR("\003", "\000", "\000", "\000", "end"), UPB_TABVALUE_PTR_INIT(&fields[17]), NULL}, {UPB_TABKEY_STR("\003", "\000", "\000", "\000", "end"), UPB_TABVALUE_PTR_INIT(&fields[17]), NULL},
{UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL}, {UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL},
{UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL}, {UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL},
{UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL}, {UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL},
{UPB_TABKEY_STR("\005", "\000", "\000", "\000", "value"), UPB_TABVALUE_PTR_INIT(&fields[103]), NULL}, {UPB_TABKEY_STR("\005", "\000", "\000", "\000", "value"), UPB_TABVALUE_PTR_INIT(&fields[104]), NULL},
{UPB_TABKEY_STR("\007", "\000", "\000", "\000", "options"), UPB_TABVALUE_PTR_INIT(&fields[74]), NULL}, {UPB_TABKEY_STR("\007", "\000", "\000", "\000", "options"), UPB_TABVALUE_PTR_INIT(&fields[73]), NULL},
{UPB_TABKEY_STR("\004", "\000", "\000", "\000", "name"), UPB_TABVALUE_PTR_INIT(&fields[54]), &strentries[26]}, {UPB_TABKEY_STR("\004", "\000", "\000", "\000", "name"), UPB_TABVALUE_PTR_INIT(&fields[52]), &strentries[26]},
{UPB_TABKEY_STR("\024", "\000", "\000", "\000", "uninterpreted_option"), UPB_TABVALUE_PTR_INIT(&fields[102]), NULL}, {UPB_TABKEY_STR("\024", "\000", "\000", "\000", "uninterpreted_option"), UPB_TABVALUE_PTR_INIT(&fields[103]), NULL},
{UPB_TABKEY_STR("\012", "\000", "\000", "\000", "deprecated"), UPB_TABVALUE_PTR_INIT(&fields[14]), NULL}, {UPB_TABKEY_STR("\012", "\000", "\000", "\000", "deprecated"), UPB_TABVALUE_PTR_INIT(&fields[14]), NULL},
{UPB_TABKEY_STR("\013", "\000", "\000", "\000", "allow_alias"), UPB_TABVALUE_PTR_INIT(&fields[1]), NULL}, {UPB_TABKEY_STR("\013", "\000", "\000", "\000", "allow_alias"), UPB_TABVALUE_PTR_INIT(&fields[1]), NULL},
{UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL}, {UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL},
{UPB_TABKEY_STR("\006", "\000", "\000", "\000", "number"), UPB_TABVALUE_PTR_INIT(&fields[62]), NULL}, {UPB_TABKEY_STR("\006", "\000", "\000", "\000", "number"), UPB_TABVALUE_PTR_INIT(&fields[63]), NULL},
{UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL}, {UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL},
{UPB_TABKEY_STR("\007", "\000", "\000", "\000", "options"), UPB_TABVALUE_PTR_INIT(&fields[72]), NULL}, {UPB_TABKEY_STR("\007", "\000", "\000", "\000", "options"), UPB_TABVALUE_PTR_INIT(&fields[74]), NULL},
{UPB_TABKEY_STR("\004", "\000", "\000", "\000", "name"), UPB_TABVALUE_PTR_INIT(&fields[51]), &strentries[34]}, {UPB_TABKEY_STR("\004", "\000", "\000", "\000", "name"), UPB_TABVALUE_PTR_INIT(&fields[50]), &strentries[34]},
{UPB_TABKEY_STR("\024", "\000", "\000", "\000", "uninterpreted_option"), UPB_TABVALUE_PTR_INIT(&fields[101]), NULL}, {UPB_TABKEY_STR("\024", "\000", "\000", "\000", "uninterpreted_option"), UPB_TABVALUE_PTR_INIT(&fields[102]), NULL},
{UPB_TABKEY_STR("\012", "\000", "\000", "\000", "deprecated"), UPB_TABVALUE_PTR_INIT(&fields[13]), NULL}, {UPB_TABKEY_STR("\012", "\000", "\000", "\000", "deprecated"), UPB_TABVALUE_PTR_INIT(&fields[13]), NULL},
{UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL}, {UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL},
{UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL}, {UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL},
@ -6620,17 +6639,17 @@ static const upb_tabent strentries[236] = {
{UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL}, {UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL},
{UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL}, {UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL},
{UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL}, {UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL},
{UPB_TABKEY_STR("\006", "\000", "\000", "\000", "number"), UPB_TABVALUE_PTR_INIT(&fields[63]), &strentries[53]}, {UPB_TABKEY_STR("\006", "\000", "\000", "\000", "number"), UPB_TABVALUE_PTR_INIT(&fields[62]), &strentries[53]},
{UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL}, {UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL},
{UPB_TABKEY_STR("\010", "\000", "\000", "\000", "extendee"), UPB_TABVALUE_PTR_INIT(&fields[21]), NULL}, {UPB_TABKEY_STR("\010", "\000", "\000", "\000", "extendee"), UPB_TABVALUE_PTR_INIT(&fields[21]), NULL},
{UPB_TABKEY_STR("\011", "\000", "\000", "\000", "type_name"), UPB_TABVALUE_PTR_INIT(&fields[95]), NULL}, {UPB_TABKEY_STR("\011", "\000", "\000", "\000", "type_name"), UPB_TABVALUE_PTR_INIT(&fields[96]), NULL},
{UPB_TABKEY_STR("\011", "\000", "\000", "\000", "json_name"), UPB_TABVALUE_PTR_INIT(&fields[38]), NULL}, {UPB_TABKEY_STR("\011", "\000", "\000", "\000", "json_name"), UPB_TABVALUE_PTR_INIT(&fields[38]), NULL},
{UPB_TABKEY_STR("\004", "\000", "\000", "\000", "type"), UPB_TABVALUE_PTR_INIT(&fields[94]), &strentries[50]}, {UPB_TABKEY_STR("\004", "\000", "\000", "\000", "type"), UPB_TABVALUE_PTR_INIT(&fields[95]), &strentries[50]},
{UPB_TABKEY_STR("\015", "\000", "\000", "\000", "default_value"), UPB_TABVALUE_PTR_INIT(&fields[7]), NULL}, {UPB_TABKEY_STR("\015", "\000", "\000", "\000", "default_value"), UPB_TABVALUE_PTR_INIT(&fields[7]), NULL},
{UPB_TABKEY_STR("\007", "\000", "\000", "\000", "options"), UPB_TABVALUE_PTR_INIT(&fields[71]), NULL}, {UPB_TABKEY_STR("\007", "\000", "\000", "\000", "options"), UPB_TABVALUE_PTR_INIT(&fields[70]), NULL},
{UPB_TABKEY_STR("\024", "\000", "\000", "\000", "uninterpreted_option"), UPB_TABVALUE_PTR_INIT(&fields[99]), NULL}, {UPB_TABKEY_STR("\024", "\000", "\000", "\000", "uninterpreted_option"), UPB_TABVALUE_PTR_INIT(&fields[101]), NULL},
{UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL}, {UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL},
{UPB_TABKEY_STR("\004", "\000", "\000", "\000", "weak"), UPB_TABVALUE_PTR_INIT(&fields[104]), NULL}, {UPB_TABKEY_STR("\004", "\000", "\000", "\000", "weak"), UPB_TABVALUE_PTR_INIT(&fields[105]), NULL},
{UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL}, {UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL},
{UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL}, {UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL},
{UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL}, {UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL},
@ -6645,21 +6664,21 @@ static const upb_tabent strentries[236] = {
{UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL}, {UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL},
{UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL}, {UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL},
{UPB_TABKEY_STR("\011", "\000", "\000", "\000", "extension"), UPB_TABVALUE_PTR_INIT(&fields[23]), NULL}, {UPB_TABKEY_STR("\011", "\000", "\000", "\000", "extension"), UPB_TABVALUE_PTR_INIT(&fields[23]), NULL},
{UPB_TABKEY_STR("\017", "\000", "\000", "\000", "weak_dependency"), UPB_TABVALUE_PTR_INIT(&fields[105]), NULL}, {UPB_TABKEY_STR("\017", "\000", "\000", "\000", "weak_dependency"), UPB_TABVALUE_PTR_INIT(&fields[106]), NULL},
{UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL}, {UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL},
{UPB_TABKEY_STR("\004", "\000", "\000", "\000", "name"), UPB_TABVALUE_PTR_INIT(&fields[57]), NULL}, {UPB_TABKEY_STR("\004", "\000", "\000", "\000", "name"), UPB_TABVALUE_PTR_INIT(&fields[51]), NULL},
{UPB_TABKEY_STR("\007", "\000", "\000", "\000", "service"), UPB_TABVALUE_PTR_INIT(&fields[86]), NULL}, {UPB_TABKEY_STR("\007", "\000", "\000", "\000", "service"), UPB_TABVALUE_PTR_INIT(&fields[87]), NULL},
{UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL}, {UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL},
{UPB_TABKEY_STR("\020", "\000", "\000", "\000", "source_code_info"), UPB_TABVALUE_PTR_INIT(&fields[87]), NULL}, {UPB_TABKEY_STR("\020", "\000", "\000", "\000", "source_code_info"), UPB_TABVALUE_PTR_INIT(&fields[88]), NULL},
{UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL}, {UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL},
{UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL}, {UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL},
{UPB_TABKEY_STR("\006", "\000", "\000", "\000", "syntax"), UPB_TABVALUE_PTR_INIT(&fields[92]), NULL}, {UPB_TABKEY_STR("\006", "\000", "\000", "\000", "syntax"), UPB_TABVALUE_PTR_INIT(&fields[93]), NULL},
{UPB_TABKEY_STR("\012", "\000", "\000", "\000", "dependency"), UPB_TABVALUE_PTR_INIT(&fields[8]), NULL}, {UPB_TABKEY_STR("\012", "\000", "\000", "\000", "dependency"), UPB_TABVALUE_PTR_INIT(&fields[8]), NULL},
{UPB_TABKEY_STR("\014", "\000", "\000", "\000", "message_type"), UPB_TABVALUE_PTR_INIT(&fields[47]), NULL}, {UPB_TABKEY_STR("\014", "\000", "\000", "\000", "message_type"), UPB_TABVALUE_PTR_INIT(&fields[47]), NULL},
{UPB_TABKEY_STR("\007", "\000", "\000", "\000", "package"), UPB_TABVALUE_PTR_INIT(&fields[76]), NULL}, {UPB_TABKEY_STR("\007", "\000", "\000", "\000", "package"), UPB_TABVALUE_PTR_INIT(&fields[76]), NULL},
{UPB_TABKEY_STR("\007", "\000", "\000", "\000", "options"), UPB_TABVALUE_PTR_INIT(&fields[68]), &strentries[86]}, {UPB_TABKEY_STR("\007", "\000", "\000", "\000", "options"), UPB_TABVALUE_PTR_INIT(&fields[69]), &strentries[86]},
{UPB_TABKEY_STR("\011", "\000", "\000", "\000", "enum_type"), UPB_TABVALUE_PTR_INIT(&fields[19]), NULL}, {UPB_TABKEY_STR("\011", "\000", "\000", "\000", "enum_type"), UPB_TABVALUE_PTR_INIT(&fields[19]), NULL},
{UPB_TABKEY_STR("\021", "\000", "\000", "\000", "public_dependency"), UPB_TABVALUE_PTR_INIT(&fields[81]), &strentries[85]}, {UPB_TABKEY_STR("\021", "\000", "\000", "\000", "public_dependency"), UPB_TABVALUE_PTR_INIT(&fields[82]), &strentries[85]},
{UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL}, {UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL},
{UPB_TABKEY_STR("\004", "\000", "\000", "\000", "file"), UPB_TABVALUE_PTR_INIT(&fields[26]), NULL}, {UPB_TABKEY_STR("\004", "\000", "\000", "\000", "file"), UPB_TABVALUE_PTR_INIT(&fields[26]), NULL},
{UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL}, {UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL},
@ -6680,17 +6699,17 @@ static const upb_tabent strentries[236] = {
{UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL}, {UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL},
{UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL}, {UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL},
{UPB_TABKEY_STR("\024", "\000", "\000", "\000", "java_outer_classname"), UPB_TABVALUE_PTR_INIT(&fields[34]), NULL}, {UPB_TABKEY_STR("\024", "\000", "\000", "\000", "java_outer_classname"), UPB_TABVALUE_PTR_INIT(&fields[34]), NULL},
{UPB_TABKEY_STR("\024", "\000", "\000", "\000", "uninterpreted_option"), UPB_TABVALUE_PTR_INIT(&fields[100]), NULL}, {UPB_TABKEY_STR("\015", "\000", "\000", "\000", "php_namespace"), UPB_TABVALUE_PTR_INIT(&fields[80]), &strentries[113]},
{UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL}, {UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL},
{UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL}, {UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL},
{UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL}, {UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL},
{UPB_TABKEY_STR("\023", "\000", "\000", "\000", "java_multiple_files"), UPB_TABVALUE_PTR_INIT(&fields[33]), &strentries[117]}, {UPB_TABKEY_STR("\023", "\000", "\000", "\000", "java_multiple_files"), UPB_TABVALUE_PTR_INIT(&fields[33]), &strentries[117]},
{UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL}, {UPB_TABKEY_STR("\024", "\000", "\000", "\000", "uninterpreted_option"), UPB_TABVALUE_PTR_INIT(&fields[99]), NULL},
{UPB_TABKEY_STR("\025", "\000", "\000", "\000", "java_generic_services"), UPB_TABVALUE_PTR_INIT(&fields[32]), &strentries[118]}, {UPB_TABKEY_STR("\025", "\000", "\000", "\000", "java_generic_services"), UPB_TABVALUE_PTR_INIT(&fields[32]), &strentries[118]},
{UPB_TABKEY_STR("\035", "\000", "\000", "\000", "java_generate_equals_and_hash"), UPB_TABVALUE_PTR_INIT(&fields[31]), NULL}, {UPB_TABKEY_STR("\035", "\000", "\000", "\000", "java_generate_equals_and_hash"), UPB_TABVALUE_PTR_INIT(&fields[31]), NULL},
{UPB_TABKEY_STR("\020", "\000", "\000", "\000", "php_class_prefix"), UPB_TABVALUE_PTR_INIT(&fields[79]), NULL}, {UPB_TABKEY_STR("\020", "\000", "\000", "\000", "php_class_prefix"), UPB_TABVALUE_PTR_INIT(&fields[79]), NULL},
{UPB_TABKEY_STR("\037", "\000", "\000", "\000", "javanano_use_deprecated_package"), UPB_TABVALUE_PTR_INIT(&fields[37]), &strentries[123]}, {UPB_TABKEY_STR("\037", "\000", "\000", "\000", "javanano_use_deprecated_package"), UPB_TABVALUE_PTR_INIT(&fields[37]), &strentries[123]},
{UPB_TABKEY_STR("\023", "\000", "\000", "\000", "py_generic_services"), UPB_TABVALUE_PTR_INIT(&fields[82]), NULL}, {UPB_TABKEY_STR("\023", "\000", "\000", "\000", "py_generic_services"), UPB_TABVALUE_PTR_INIT(&fields[83]), NULL},
{UPB_TABKEY_STR("\014", "\000", "\000", "\000", "optimize_for"), UPB_TABVALUE_PTR_INIT(&fields[67]), NULL}, {UPB_TABKEY_STR("\014", "\000", "\000", "\000", "optimize_for"), UPB_TABVALUE_PTR_INIT(&fields[67]), NULL},
{UPB_TABKEY_STR("\026", "\000", "\000", "\000", "java_string_check_utf8"), UPB_TABVALUE_PTR_INIT(&fields[36]), NULL}, {UPB_TABKEY_STR("\026", "\000", "\000", "\000", "java_string_check_utf8"), UPB_TABVALUE_PTR_INIT(&fields[36]), NULL},
{UPB_TABKEY_STR("\012", "\000", "\000", "\000", "deprecated"), UPB_TABVALUE_PTR_INIT(&fields[12]), &strentries[119]}, {UPB_TABKEY_STR("\012", "\000", "\000", "\000", "deprecated"), UPB_TABVALUE_PTR_INIT(&fields[12]), &strentries[119]},
@ -6706,22 +6725,22 @@ static const upb_tabent strentries[236] = {
{UPB_TABKEY_STR("\037", "\000", "\000", "\000", "no_standard_descriptor_accessor"), UPB_TABVALUE_PTR_INIT(&fields[61]), NULL}, {UPB_TABKEY_STR("\037", "\000", "\000", "\000", "no_standard_descriptor_accessor"), UPB_TABVALUE_PTR_INIT(&fields[61]), NULL},
{UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL}, {UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL},
{UPB_TABKEY_STR("\020", "\000", "\000", "\000", "client_streaming"), UPB_TABVALUE_PTR_INIT(&fields[4]), NULL}, {UPB_TABKEY_STR("\020", "\000", "\000", "\000", "client_streaming"), UPB_TABVALUE_PTR_INIT(&fields[4]), NULL},
{UPB_TABKEY_STR("\020", "\000", "\000", "\000", "server_streaming"), UPB_TABVALUE_PTR_INIT(&fields[85]), NULL}, {UPB_TABKEY_STR("\020", "\000", "\000", "\000", "server_streaming"), UPB_TABVALUE_PTR_INIT(&fields[86]), NULL},
{UPB_TABKEY_STR("\004", "\000", "\000", "\000", "name"), UPB_TABVALUE_PTR_INIT(&fields[52]), NULL}, {UPB_TABKEY_STR("\004", "\000", "\000", "\000", "name"), UPB_TABVALUE_PTR_INIT(&fields[55]), NULL},
{UPB_TABKEY_STR("\012", "\000", "\000", "\000", "input_type"), UPB_TABVALUE_PTR_INIT(&fields[29]), NULL}, {UPB_TABKEY_STR("\012", "\000", "\000", "\000", "input_type"), UPB_TABVALUE_PTR_INIT(&fields[29]), NULL},
{UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL}, {UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL},
{UPB_TABKEY_STR("\013", "\000", "\000", "\000", "output_type"), UPB_TABVALUE_PTR_INIT(&fields[75]), NULL}, {UPB_TABKEY_STR("\013", "\000", "\000", "\000", "output_type"), UPB_TABVALUE_PTR_INIT(&fields[75]), NULL},
{UPB_TABKEY_STR("\007", "\000", "\000", "\000", "options"), UPB_TABVALUE_PTR_INIT(&fields[70]), NULL}, {UPB_TABKEY_STR("\007", "\000", "\000", "\000", "options"), UPB_TABVALUE_PTR_INIT(&fields[71]), NULL},
{UPB_TABKEY_STR("\024", "\000", "\000", "\000", "uninterpreted_option"), UPB_TABVALUE_PTR_INIT(&fields[96]), NULL}, {UPB_TABKEY_STR("\024", "\000", "\000", "\000", "uninterpreted_option"), UPB_TABVALUE_PTR_INIT(&fields[100]), NULL},
{UPB_TABKEY_STR("\012", "\000", "\000", "\000", "deprecated"), UPB_TABVALUE_PTR_INIT(&fields[10]), NULL}, {UPB_TABKEY_STR("\012", "\000", "\000", "\000", "deprecated"), UPB_TABVALUE_PTR_INIT(&fields[10]), NULL},
{UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL}, {UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL},
{UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL}, {UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL},
{UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL}, {UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL},
{UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL}, {UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL},
{UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL}, {UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL},
{UPB_TABKEY_STR("\004", "\000", "\000", "\000", "name"), UPB_TABVALUE_PTR_INIT(&fields[55]), NULL}, {UPB_TABKEY_STR("\004", "\000", "\000", "\000", "name"), UPB_TABVALUE_PTR_INIT(&fields[54]), NULL},
{UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL}, {UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL},
{UPB_TABKEY_STR("\007", "\000", "\000", "\000", "options"), UPB_TABVALUE_PTR_INIT(&fields[73]), &strentries[150]}, {UPB_TABKEY_STR("\007", "\000", "\000", "\000", "options"), UPB_TABVALUE_PTR_INIT(&fields[72]), &strentries[150]},
{UPB_TABKEY_STR("\006", "\000", "\000", "\000", "method"), UPB_TABVALUE_PTR_INIT(&fields[48]), NULL}, {UPB_TABKEY_STR("\006", "\000", "\000", "\000", "method"), UPB_TABVALUE_PTR_INIT(&fields[48]), NULL},
{UPB_TABKEY_STR("\004", "\000", "\000", "\000", "name"), UPB_TABVALUE_PTR_INIT(&fields[53]), &strentries[149]}, {UPB_TABKEY_STR("\004", "\000", "\000", "\000", "name"), UPB_TABVALUE_PTR_INIT(&fields[53]), &strentries[149]},
{UPB_TABKEY_STR("\024", "\000", "\000", "\000", "uninterpreted_option"), UPB_TABVALUE_PTR_INIT(&fields[98]), NULL}, {UPB_TABKEY_STR("\024", "\000", "\000", "\000", "uninterpreted_option"), UPB_TABVALUE_PTR_INIT(&fields[98]), NULL},
@ -6735,9 +6754,9 @@ static const upb_tabent strentries[236] = {
{UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL}, {UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL},
{UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL}, {UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL},
{UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL}, {UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL},
{UPB_TABKEY_STR("\004", "\000", "\000", "\000", "span"), UPB_TABVALUE_PTR_INIT(&fields[88]), &strentries[167]}, {UPB_TABKEY_STR("\004", "\000", "\000", "\000", "span"), UPB_TABVALUE_PTR_INIT(&fields[89]), &strentries[167]},
{UPB_TABKEY_STR("\031", "\000", "\000", "\000", "leading_detached_comments"), UPB_TABVALUE_PTR_INIT(&fields[43]), &strentries[165]}, {UPB_TABKEY_STR("\031", "\000", "\000", "\000", "leading_detached_comments"), UPB_TABVALUE_PTR_INIT(&fields[43]), &strentries[165]},
{UPB_TABKEY_STR("\021", "\000", "\000", "\000", "trailing_comments"), UPB_TABVALUE_PTR_INIT(&fields[93]), NULL}, {UPB_TABKEY_STR("\021", "\000", "\000", "\000", "trailing_comments"), UPB_TABVALUE_PTR_INIT(&fields[94]), NULL},
{UPB_TABKEY_STR("\020", "\000", "\000", "\000", "leading_comments"), UPB_TABVALUE_PTR_INIT(&fields[42]), &strentries[164]}, {UPB_TABKEY_STR("\020", "\000", "\000", "\000", "leading_comments"), UPB_TABVALUE_PTR_INIT(&fields[42]), &strentries[164]},
{UPB_TABKEY_STR("\004", "\000", "\000", "\000", "path"), UPB_TABVALUE_PTR_INIT(&fields[78]), NULL}, {UPB_TABKEY_STR("\004", "\000", "\000", "\000", "path"), UPB_TABVALUE_PTR_INIT(&fields[78]), NULL},
{UPB_TABKEY_STR("\014", "\000", "\000", "\000", "double_value"), UPB_TABVALUE_PTR_INIT(&fields[16]), NULL}, {UPB_TABKEY_STR("\014", "\000", "\000", "\000", "double_value"), UPB_TABVALUE_PTR_INIT(&fields[16]), NULL},
@ -6753,9 +6772,9 @@ static const upb_tabent strentries[236] = {
{UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL}, {UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL},
{UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL}, {UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL},
{UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL}, {UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL},
{UPB_TABKEY_STR("\022", "\000", "\000", "\000", "positive_int_value"), UPB_TABVALUE_PTR_INIT(&fields[80]), NULL}, {UPB_TABKEY_STR("\022", "\000", "\000", "\000", "positive_int_value"), UPB_TABVALUE_PTR_INIT(&fields[81]), NULL},
{UPB_TABKEY_STR("\020", "\000", "\000", "\000", "identifier_value"), UPB_TABVALUE_PTR_INIT(&fields[28]), NULL}, {UPB_TABKEY_STR("\020", "\000", "\000", "\000", "identifier_value"), UPB_TABVALUE_PTR_INIT(&fields[28]), NULL},
{UPB_TABKEY_STR("\014", "\000", "\000", "\000", "string_value"), UPB_TABVALUE_PTR_INIT(&fields[91]), &strentries[182]}, {UPB_TABKEY_STR("\014", "\000", "\000", "\000", "string_value"), UPB_TABVALUE_PTR_INIT(&fields[92]), &strentries[182]},
{UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL}, {UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL},
{UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL}, {UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL},
{UPB_TABKEY_STR("\014", "\000", "\000", "\000", "is_extension"), UPB_TABVALUE_PTR_INIT(&fields[30]), NULL}, {UPB_TABKEY_STR("\014", "\000", "\000", "\000", "is_extension"), UPB_TABVALUE_PTR_INIT(&fields[30]), NULL},
@ -6811,6 +6830,8 @@ static const upb_tabent strentries[236] = {
}; };
static const upb_tabent intentries[18] = { static const upb_tabent intentries[18] = {
{UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL},
{UPB_TABKEY_NUM(999), UPB_TABVALUE_PTR_INIT(&fields[103]), NULL},
{UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL}, {UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL},
{UPB_TABKEY_NUM(999), UPB_TABVALUE_PTR_INIT(&fields[102]), NULL}, {UPB_TABKEY_NUM(999), UPB_TABVALUE_PTR_INIT(&fields[102]), NULL},
{UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL}, {UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL},
@ -6818,60 +6839,58 @@ static const upb_tabent intentries[18] = {
{UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL}, {UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL},
{UPB_TABKEY_NUM(999), UPB_TABVALUE_PTR_INIT(&fields[99]), NULL}, {UPB_TABKEY_NUM(999), UPB_TABVALUE_PTR_INIT(&fields[99]), NULL},
{UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL}, {UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL},
{UPB_TABKEY_NUM(999), UPB_TABVALUE_PTR_INIT(&fields[100]), NULL},
{UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL},
{UPB_TABKEY_NUM(999), UPB_TABVALUE_PTR_INIT(&fields[97]), NULL}, {UPB_TABKEY_NUM(999), UPB_TABVALUE_PTR_INIT(&fields[97]), NULL},
{UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL}, {UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL},
{UPB_TABKEY_NUM(33), UPB_TABVALUE_PTR_INIT(&fields[10]), NULL}, {UPB_TABKEY_NUM(33), UPB_TABVALUE_PTR_INIT(&fields[10]), NULL},
{UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL}, {UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL},
{UPB_TABKEY_NUM(999), UPB_TABVALUE_PTR_INIT(&fields[96]), NULL}, {UPB_TABKEY_NUM(999), UPB_TABVALUE_PTR_INIT(&fields[100]), NULL},
{UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL}, {UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL},
{UPB_TABKEY_NUM(33), UPB_TABVALUE_PTR_INIT(&fields[15]), NULL}, {UPB_TABKEY_NUM(33), UPB_TABVALUE_PTR_INIT(&fields[15]), NULL},
{UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL}, {UPB_TABKEY_NONE, UPB_TABVALUE_EMPTY_INIT, NULL},
{UPB_TABKEY_NUM(999), UPB_TABVALUE_PTR_INIT(&fields[98]), NULL}, {UPB_TABKEY_NUM(999), UPB_TABVALUE_PTR_INIT(&fields[98]), NULL},
}; };
static const upb_tabval arrays[186] = { static const upb_tabval arrays[187] = {
UPB_TABVALUE_EMPTY_INIT, UPB_TABVALUE_EMPTY_INIT,
UPB_TABVALUE_PTR_INIT(&fields[50]), UPB_TABVALUE_PTR_INIT(&fields[57]),
UPB_TABVALUE_PTR_INIT(&fields[25]), UPB_TABVALUE_PTR_INIT(&fields[25]),
UPB_TABVALUE_PTR_INIT(&fields[60]), UPB_TABVALUE_PTR_INIT(&fields[60]),
UPB_TABVALUE_PTR_INIT(&fields[20]), UPB_TABVALUE_PTR_INIT(&fields[20]),
UPB_TABVALUE_PTR_INIT(&fields[24]), UPB_TABVALUE_PTR_INIT(&fields[24]),
UPB_TABVALUE_PTR_INIT(&fields[22]), UPB_TABVALUE_PTR_INIT(&fields[22]),
UPB_TABVALUE_PTR_INIT(&fields[69]), UPB_TABVALUE_PTR_INIT(&fields[68]),
UPB_TABVALUE_PTR_INIT(&fields[65]), UPB_TABVALUE_PTR_INIT(&fields[65]),
UPB_TABVALUE_PTR_INIT(&fields[85]),
UPB_TABVALUE_PTR_INIT(&fields[84]), UPB_TABVALUE_PTR_INIT(&fields[84]),
UPB_TABVALUE_PTR_INIT(&fields[83]),
UPB_TABVALUE_EMPTY_INIT, UPB_TABVALUE_EMPTY_INIT,
UPB_TABVALUE_PTR_INIT(&fields[90]), UPB_TABVALUE_PTR_INIT(&fields[91]),
UPB_TABVALUE_PTR_INIT(&fields[18]), UPB_TABVALUE_PTR_INIT(&fields[18]),
UPB_TABVALUE_EMPTY_INIT, UPB_TABVALUE_EMPTY_INIT,
UPB_TABVALUE_PTR_INIT(&fields[89]), UPB_TABVALUE_PTR_INIT(&fields[90]),
UPB_TABVALUE_PTR_INIT(&fields[17]), UPB_TABVALUE_PTR_INIT(&fields[17]),
UPB_TABVALUE_EMPTY_INIT, UPB_TABVALUE_EMPTY_INIT,
UPB_TABVALUE_PTR_INIT(&fields[54]), UPB_TABVALUE_PTR_INIT(&fields[52]),
UPB_TABVALUE_PTR_INIT(&fields[103]), UPB_TABVALUE_PTR_INIT(&fields[104]),
UPB_TABVALUE_PTR_INIT(&fields[74]), UPB_TABVALUE_PTR_INIT(&fields[73]),
UPB_TABVALUE_EMPTY_INIT, UPB_TABVALUE_EMPTY_INIT,
UPB_TABVALUE_EMPTY_INIT, UPB_TABVALUE_EMPTY_INIT,
UPB_TABVALUE_PTR_INIT(&fields[1]), UPB_TABVALUE_PTR_INIT(&fields[1]),
UPB_TABVALUE_PTR_INIT(&fields[14]), UPB_TABVALUE_PTR_INIT(&fields[14]),
UPB_TABVALUE_EMPTY_INIT, UPB_TABVALUE_EMPTY_INIT,
UPB_TABVALUE_PTR_INIT(&fields[51]), UPB_TABVALUE_PTR_INIT(&fields[50]),
UPB_TABVALUE_PTR_INIT(&fields[62]), UPB_TABVALUE_PTR_INIT(&fields[63]),
UPB_TABVALUE_PTR_INIT(&fields[72]), UPB_TABVALUE_PTR_INIT(&fields[74]),
UPB_TABVALUE_EMPTY_INIT, UPB_TABVALUE_EMPTY_INIT,
UPB_TABVALUE_PTR_INIT(&fields[13]), UPB_TABVALUE_PTR_INIT(&fields[13]),
UPB_TABVALUE_EMPTY_INIT, UPB_TABVALUE_EMPTY_INIT,
UPB_TABVALUE_PTR_INIT(&fields[56]), UPB_TABVALUE_PTR_INIT(&fields[56]),
UPB_TABVALUE_PTR_INIT(&fields[21]), UPB_TABVALUE_PTR_INIT(&fields[21]),
UPB_TABVALUE_PTR_INIT(&fields[63]), UPB_TABVALUE_PTR_INIT(&fields[62]),
UPB_TABVALUE_PTR_INIT(&fields[40]), UPB_TABVALUE_PTR_INIT(&fields[40]),
UPB_TABVALUE_PTR_INIT(&fields[94]),
UPB_TABVALUE_PTR_INIT(&fields[95]), UPB_TABVALUE_PTR_INIT(&fields[95]),
UPB_TABVALUE_PTR_INIT(&fields[96]),
UPB_TABVALUE_PTR_INIT(&fields[7]), UPB_TABVALUE_PTR_INIT(&fields[7]),
UPB_TABVALUE_PTR_INIT(&fields[71]), UPB_TABVALUE_PTR_INIT(&fields[70]),
UPB_TABVALUE_PTR_INIT(&fields[66]), UPB_TABVALUE_PTR_INIT(&fields[66]),
UPB_TABVALUE_PTR_INIT(&fields[38]), UPB_TABVALUE_PTR_INIT(&fields[38]),
UPB_TABVALUE_EMPTY_INIT, UPB_TABVALUE_EMPTY_INIT,
@ -6884,20 +6903,20 @@ static const upb_tabval arrays[186] = {
UPB_TABVALUE_EMPTY_INIT, UPB_TABVALUE_EMPTY_INIT,
UPB_TABVALUE_EMPTY_INIT, UPB_TABVALUE_EMPTY_INIT,
UPB_TABVALUE_EMPTY_INIT, UPB_TABVALUE_EMPTY_INIT,
UPB_TABVALUE_PTR_INIT(&fields[104]), UPB_TABVALUE_PTR_INIT(&fields[105]),
UPB_TABVALUE_EMPTY_INIT, UPB_TABVALUE_EMPTY_INIT,
UPB_TABVALUE_PTR_INIT(&fields[57]), UPB_TABVALUE_PTR_INIT(&fields[51]),
UPB_TABVALUE_PTR_INIT(&fields[76]), UPB_TABVALUE_PTR_INIT(&fields[76]),
UPB_TABVALUE_PTR_INIT(&fields[8]), UPB_TABVALUE_PTR_INIT(&fields[8]),
UPB_TABVALUE_PTR_INIT(&fields[47]), UPB_TABVALUE_PTR_INIT(&fields[47]),
UPB_TABVALUE_PTR_INIT(&fields[19]), UPB_TABVALUE_PTR_INIT(&fields[19]),
UPB_TABVALUE_PTR_INIT(&fields[86]),
UPB_TABVALUE_PTR_INIT(&fields[23]),
UPB_TABVALUE_PTR_INIT(&fields[68]),
UPB_TABVALUE_PTR_INIT(&fields[87]), UPB_TABVALUE_PTR_INIT(&fields[87]),
UPB_TABVALUE_PTR_INIT(&fields[81]), UPB_TABVALUE_PTR_INIT(&fields[23]),
UPB_TABVALUE_PTR_INIT(&fields[105]), UPB_TABVALUE_PTR_INIT(&fields[69]),
UPB_TABVALUE_PTR_INIT(&fields[92]), UPB_TABVALUE_PTR_INIT(&fields[88]),
UPB_TABVALUE_PTR_INIT(&fields[82]),
UPB_TABVALUE_PTR_INIT(&fields[106]),
UPB_TABVALUE_PTR_INIT(&fields[93]),
UPB_TABVALUE_EMPTY_INIT, UPB_TABVALUE_EMPTY_INIT,
UPB_TABVALUE_PTR_INIT(&fields[26]), UPB_TABVALUE_PTR_INIT(&fields[26]),
UPB_TABVALUE_EMPTY_INIT, UPB_TABVALUE_EMPTY_INIT,
@ -6918,7 +6937,7 @@ static const upb_tabval arrays[186] = {
UPB_TABVALUE_EMPTY_INIT, UPB_TABVALUE_EMPTY_INIT,
UPB_TABVALUE_PTR_INIT(&fields[3]), UPB_TABVALUE_PTR_INIT(&fields[3]),
UPB_TABVALUE_PTR_INIT(&fields[32]), UPB_TABVALUE_PTR_INIT(&fields[32]),
UPB_TABVALUE_PTR_INIT(&fields[82]), UPB_TABVALUE_PTR_INIT(&fields[83]),
UPB_TABVALUE_EMPTY_INIT, UPB_TABVALUE_EMPTY_INIT,
UPB_TABVALUE_PTR_INIT(&fields[31]), UPB_TABVALUE_PTR_INIT(&fields[31]),
UPB_TABVALUE_EMPTY_INIT, UPB_TABVALUE_EMPTY_INIT,
@ -6941,6 +6960,7 @@ static const upb_tabval arrays[186] = {
UPB_TABVALUE_PTR_INIT(&fields[37]), UPB_TABVALUE_PTR_INIT(&fields[37]),
UPB_TABVALUE_EMPTY_INIT, UPB_TABVALUE_EMPTY_INIT,
UPB_TABVALUE_PTR_INIT(&fields[79]), UPB_TABVALUE_PTR_INIT(&fields[79]),
UPB_TABVALUE_PTR_INIT(&fields[80]),
UPB_TABVALUE_EMPTY_INIT, UPB_TABVALUE_EMPTY_INIT,
UPB_TABVALUE_PTR_INIT(&fields[46]), UPB_TABVALUE_PTR_INIT(&fields[46]),
UPB_TABVALUE_PTR_INIT(&fields[61]), UPB_TABVALUE_PTR_INIT(&fields[61]),
@ -6950,37 +6970,37 @@ static const upb_tabval arrays[186] = {
UPB_TABVALUE_EMPTY_INIT, UPB_TABVALUE_EMPTY_INIT,
UPB_TABVALUE_PTR_INIT(&fields[45]), UPB_TABVALUE_PTR_INIT(&fields[45]),
UPB_TABVALUE_EMPTY_INIT, UPB_TABVALUE_EMPTY_INIT,
UPB_TABVALUE_PTR_INIT(&fields[52]), UPB_TABVALUE_PTR_INIT(&fields[55]),
UPB_TABVALUE_PTR_INIT(&fields[29]), UPB_TABVALUE_PTR_INIT(&fields[29]),
UPB_TABVALUE_PTR_INIT(&fields[75]), UPB_TABVALUE_PTR_INIT(&fields[75]),
UPB_TABVALUE_PTR_INIT(&fields[70]), UPB_TABVALUE_PTR_INIT(&fields[71]),
UPB_TABVALUE_PTR_INIT(&fields[4]), UPB_TABVALUE_PTR_INIT(&fields[4]),
UPB_TABVALUE_PTR_INIT(&fields[85]), UPB_TABVALUE_PTR_INIT(&fields[86]),
UPB_TABVALUE_EMPTY_INIT, UPB_TABVALUE_EMPTY_INIT,
UPB_TABVALUE_EMPTY_INIT, UPB_TABVALUE_EMPTY_INIT,
UPB_TABVALUE_PTR_INIT(&fields[55]), UPB_TABVALUE_PTR_INIT(&fields[54]),
UPB_TABVALUE_EMPTY_INIT, UPB_TABVALUE_EMPTY_INIT,
UPB_TABVALUE_PTR_INIT(&fields[53]), UPB_TABVALUE_PTR_INIT(&fields[53]),
UPB_TABVALUE_PTR_INIT(&fields[48]), UPB_TABVALUE_PTR_INIT(&fields[48]),
UPB_TABVALUE_PTR_INIT(&fields[73]), UPB_TABVALUE_PTR_INIT(&fields[72]),
UPB_TABVALUE_EMPTY_INIT, UPB_TABVALUE_EMPTY_INIT,
UPB_TABVALUE_EMPTY_INIT, UPB_TABVALUE_EMPTY_INIT,
UPB_TABVALUE_PTR_INIT(&fields[44]), UPB_TABVALUE_PTR_INIT(&fields[44]),
UPB_TABVALUE_EMPTY_INIT, UPB_TABVALUE_EMPTY_INIT,
UPB_TABVALUE_PTR_INIT(&fields[78]), UPB_TABVALUE_PTR_INIT(&fields[78]),
UPB_TABVALUE_PTR_INIT(&fields[88]), UPB_TABVALUE_PTR_INIT(&fields[89]),
UPB_TABVALUE_PTR_INIT(&fields[42]), UPB_TABVALUE_PTR_INIT(&fields[42]),
UPB_TABVALUE_PTR_INIT(&fields[93]), UPB_TABVALUE_PTR_INIT(&fields[94]),
UPB_TABVALUE_EMPTY_INIT, UPB_TABVALUE_EMPTY_INIT,
UPB_TABVALUE_PTR_INIT(&fields[43]), UPB_TABVALUE_PTR_INIT(&fields[43]),
UPB_TABVALUE_EMPTY_INIT, UPB_TABVALUE_EMPTY_INIT,
UPB_TABVALUE_EMPTY_INIT, UPB_TABVALUE_EMPTY_INIT,
UPB_TABVALUE_PTR_INIT(&fields[49]), UPB_TABVALUE_PTR_INIT(&fields[49]),
UPB_TABVALUE_PTR_INIT(&fields[28]), UPB_TABVALUE_PTR_INIT(&fields[28]),
UPB_TABVALUE_PTR_INIT(&fields[80]), UPB_TABVALUE_PTR_INIT(&fields[81]),
UPB_TABVALUE_PTR_INIT(&fields[59]), UPB_TABVALUE_PTR_INIT(&fields[59]),
UPB_TABVALUE_PTR_INIT(&fields[16]), UPB_TABVALUE_PTR_INIT(&fields[16]),
UPB_TABVALUE_PTR_INIT(&fields[91]), UPB_TABVALUE_PTR_INIT(&fields[92]),
UPB_TABVALUE_PTR_INIT(&fields[0]), UPB_TABVALUE_PTR_INIT(&fields[0]),
UPB_TABVALUE_EMPTY_INIT, UPB_TABVALUE_EMPTY_INIT,
UPB_TABVALUE_PTR_INIT(&fields[58]), UPB_TABVALUE_PTR_INIT(&fields[58]),
@ -7021,7 +7041,9 @@ static const upb_tabval arrays[186] = {
}; };
#ifdef UPB_DEBUG_REFS #ifdef UPB_DEBUG_REFS
static upb_inttable reftables[266] = { static upb_inttable reftables[268] = {
UPB_EMPTY_INTTABLE_INIT(UPB_CTYPE_PTR),
UPB_EMPTY_INTTABLE_INIT(UPB_CTYPE_PTR),
UPB_EMPTY_INTTABLE_INIT(UPB_CTYPE_PTR), UPB_EMPTY_INTTABLE_INIT(UPB_CTYPE_PTR),
UPB_EMPTY_INTTABLE_INIT(UPB_CTYPE_PTR), UPB_EMPTY_INTTABLE_INIT(UPB_CTYPE_PTR),
UPB_EMPTY_INTTABLE_INIT(UPB_CTYPE_PTR), UPB_EMPTY_INTTABLE_INIT(UPB_CTYPE_PTR),
@ -7565,6 +7587,34 @@ static size_t file_onpackage(void *closure, const void *hd, const char *buf,
return n; return n;
} }
static void *file_startphpnamespace(void *closure, const void *hd,
size_t size_hint) {
upb_descreader *r = closure;
bool ok;
UPB_UNUSED(hd);
UPB_UNUSED(size_hint);
ok = upb_filedef_setphpnamespace(r->file, "", NULL);
UPB_ASSERT(ok);
return closure;
}
static size_t file_onphpnamespace(void *closure, const void *hd,
const char *buf, size_t n,
const upb_bufhandle *handle) {
upb_descreader *r = closure;
char *php_namespace;
bool ok;
UPB_UNUSED(hd);
UPB_UNUSED(handle);
php_namespace = upb_gstrndup(buf, n);
ok = upb_filedef_setphpnamespace(r->file, php_namespace, NULL);
upb_gfree(php_namespace);
UPB_ASSERT(ok);
return n;
}
static size_t file_onphpprefix(void *closure, const void *hd, const char *buf, static size_t file_onphpprefix(void *closure, const void *hd, const char *buf,
size_t n, const upb_bufhandle *handle) { size_t n, const upb_bufhandle *handle) {
upb_descreader *r = closure; upb_descreader *r = closure;
@ -8109,6 +8159,10 @@ static void reghandlers(const void *closure, upb_handlers *h) {
} else if (upbdefs_google_protobuf_FileOptions_is(m)) { } else if (upbdefs_google_protobuf_FileOptions_is(m)) {
upb_handlers_setstring(h, F(FileOptions, php_class_prefix), upb_handlers_setstring(h, F(FileOptions, php_class_prefix),
&file_onphpprefix, NULL); &file_onphpprefix, NULL);
upb_handlers_setstartstr(h, F(FileOptions, php_namespace),
&file_startphpnamespace, NULL);
upb_handlers_setstring(h, F(FileOptions, php_namespace),
&file_onphpnamespace, NULL);
} }
UPB_ASSERT(upb_ok(upb_handlers_status(h))); UPB_ASSERT(upb_ok(upb_handlers_status(h)));
@ -11271,57 +11325,6 @@ done:
return r; return r;
} }
/* Given an encoded varint v, returns an integer with a single bit set that
* indicates the end of the varint. Subtracting one from this value will
* yield a mask that leaves only bits that are part of the varint. Returns
* 0 if the varint is unterminated. */
static uint64_t upb_get_vstopbit(uint64_t v) {
uint64_t cbits = v | 0x7f7f7f7f7f7f7f7fULL;
return ~cbits & (cbits+1);
}
/* A branchless decoder. Credit to Pascal Massimino for the bit-twiddling. */
upb_decoderet upb_vdecode_max8_massimino(upb_decoderet r) {
uint64_t b;
uint64_t stop_bit;
upb_decoderet my_r;
memcpy(&b, r.p, sizeof(b));
stop_bit = upb_get_vstopbit(b);
b = (b & 0x7f7f7f7f7f7f7f7fULL) & (stop_bit - 1);
b += b & 0x007f007f007f007fULL;
b += 3 * (b & 0x0000ffff0000ffffULL);
b += 15 * (b & 0x00000000ffffffffULL);
if (stop_bit == 0) {
/* Error: unterminated varint. */
upb_decoderet err_r = {(void*)0, 0};
return err_r;
}
my_r = upb_decoderet_make(r.p + ((__builtin_ctzll(stop_bit) + 1) / 8),
r.val | (b << 7));
return my_r;
}
/* A branchless decoder. Credit to Daniel Wright for the bit-twiddling. */
upb_decoderet upb_vdecode_max8_wright(upb_decoderet r) {
uint64_t b;
uint64_t stop_bit;
upb_decoderet my_r;
memcpy(&b, r.p, sizeof(b));
stop_bit = upb_get_vstopbit(b);
b &= (stop_bit - 1);
b = ((b & 0x7f007f007f007f00ULL) >> 1) | (b & 0x007f007f007f007fULL);
b = ((b & 0xffff0000ffff0000ULL) >> 2) | (b & 0x0000ffff0000ffffULL);
b = ((b & 0xffffffff00000000ULL) >> 4) | (b & 0x00000000ffffffffULL);
if (stop_bit == 0) {
/* Error: unterminated varint. */
upb_decoderet err_r = {(void*)0, 0};
return err_r;
}
my_r = upb_decoderet_make(r.p + ((__builtin_ctzll(stop_bit) + 1) / 8),
r.val | (b << 14));
return my_r;
}
#line 1 "upb/json/parser.rl" #line 1 "upb/json/parser.rl"
/* /*
** upb::json::Parser (upb_json_parser) ** upb::json::Parser (upb_json_parser)

@ -2973,10 +2973,16 @@ class upb::FileDef {
bool set_package(const char* package, Status* s); bool set_package(const char* package, Status* s);
/* Sets the php class prefix which is prepended to all php generated classes /* Sets the php class prefix which is prepended to all php generated classes
/ from this .proto. Default is empty. */ * from this .proto. Default is empty. */
const char* phpprefix() const; const char* phpprefix() const;
bool set_phpprefix(const char* phpprefix, Status* s); bool set_phpprefix(const char* phpprefix, Status* s);
/* Use this option to change the namespace of php generated classes. Default
* is empty. When this option is empty, the package name will be used for
* determining the namespace. */
const char* phpnamespace() const;
bool set_phpnamespace(const char* phpnamespace, Status* s);
/* Syntax for the file. Defaults to proto2. */ /* Syntax for the file. Defaults to proto2. */
upb_syntax_t syntax() const; upb_syntax_t syntax() const;
void set_syntax(upb_syntax_t syntax); void set_syntax(upb_syntax_t syntax);
@ -3031,6 +3037,7 @@ UPB_REFCOUNTED_CMETHODS(upb_filedef, upb_filedef_upcast)
const char *upb_filedef_name(const upb_filedef *f); const char *upb_filedef_name(const upb_filedef *f);
const char *upb_filedef_package(const upb_filedef *f); const char *upb_filedef_package(const upb_filedef *f);
const char *upb_filedef_phpprefix(const upb_filedef *f); const char *upb_filedef_phpprefix(const upb_filedef *f);
const char *upb_filedef_phpnamespace(const upb_filedef *f);
upb_syntax_t upb_filedef_syntax(const upb_filedef *f); upb_syntax_t upb_filedef_syntax(const upb_filedef *f);
size_t upb_filedef_defcount(const upb_filedef *f); size_t upb_filedef_defcount(const upb_filedef *f);
size_t upb_filedef_depcount(const upb_filedef *f); size_t upb_filedef_depcount(const upb_filedef *f);
@ -3042,6 +3049,8 @@ bool upb_filedef_setname(upb_filedef *f, const char *name, upb_status *s);
bool upb_filedef_setpackage(upb_filedef *f, const char *package, upb_status *s); bool upb_filedef_setpackage(upb_filedef *f, const char *package, upb_status *s);
bool upb_filedef_setphpprefix(upb_filedef *f, const char *phpprefix, bool upb_filedef_setphpprefix(upb_filedef *f, const char *phpprefix,
upb_status *s); upb_status *s);
bool upb_filedef_setphpnamespace(upb_filedef *f, const char *phpnamespace,
upb_status *s);
bool upb_filedef_setsyntax(upb_filedef *f, upb_syntax_t syntax, upb_status *s); bool upb_filedef_setsyntax(upb_filedef *f, upb_syntax_t syntax, upb_status *s);
bool upb_filedef_adddef(upb_filedef *f, upb_def *def, const void *ref_donor, bool upb_filedef_adddef(upb_filedef *f, upb_def *def, const void *ref_donor,
@ -3806,6 +3815,12 @@ inline const char* FileDef::phpprefix() const {
inline bool FileDef::set_phpprefix(const char* phpprefix, Status* s) { inline bool FileDef::set_phpprefix(const char* phpprefix, Status* s) {
return upb_filedef_setphpprefix(this, phpprefix, s); return upb_filedef_setphpprefix(this, phpprefix, s);
} }
inline const char* FileDef::phpnamespace() const {
return upb_filedef_phpnamespace(this);
}
inline bool FileDef::set_phpnamespace(const char* phpnamespace, Status* s) {
return upb_filedef_setphpnamespace(this, phpnamespace, s);
}
inline int FileDef::def_count() const { inline int FileDef::def_count() const {
return upb_filedef_defcount(this); return upb_filedef_defcount(this);
} }
@ -4021,6 +4036,7 @@ struct upb_filedef {
const char *name; const char *name;
const char *package; const char *package;
const char *phpprefix; const char *phpprefix;
const char *phpnamespace;
upb_syntax_t syntax; upb_syntax_t syntax;
upb_inttable defs; upb_inttable defs;
@ -7228,6 +7244,7 @@ UPB_INLINE const upb_fielddef *upbdefs_google_protobuf_FileOptions_f_javanano_us
UPB_INLINE const upb_fielddef *upbdefs_google_protobuf_FileOptions_f_objc_class_prefix(const upb_msgdef *m) { UPB_ASSERT(upbdefs_google_protobuf_FileOptions_is(m)); return upb_msgdef_itof(m, 36); } UPB_INLINE const upb_fielddef *upbdefs_google_protobuf_FileOptions_f_objc_class_prefix(const upb_msgdef *m) { UPB_ASSERT(upbdefs_google_protobuf_FileOptions_is(m)); return upb_msgdef_itof(m, 36); }
UPB_INLINE const upb_fielddef *upbdefs_google_protobuf_FileOptions_f_optimize_for(const upb_msgdef *m) { UPB_ASSERT(upbdefs_google_protobuf_FileOptions_is(m)); return upb_msgdef_itof(m, 9); } UPB_INLINE const upb_fielddef *upbdefs_google_protobuf_FileOptions_f_optimize_for(const upb_msgdef *m) { UPB_ASSERT(upbdefs_google_protobuf_FileOptions_is(m)); return upb_msgdef_itof(m, 9); }
UPB_INLINE const upb_fielddef *upbdefs_google_protobuf_FileOptions_f_php_class_prefix(const upb_msgdef *m) { UPB_ASSERT(upbdefs_google_protobuf_FileOptions_is(m)); return upb_msgdef_itof(m, 40); } UPB_INLINE const upb_fielddef *upbdefs_google_protobuf_FileOptions_f_php_class_prefix(const upb_msgdef *m) { UPB_ASSERT(upbdefs_google_protobuf_FileOptions_is(m)); return upb_msgdef_itof(m, 40); }
UPB_INLINE const upb_fielddef *upbdefs_google_protobuf_FileOptions_f_php_namespace(const upb_msgdef *m) { UPB_ASSERT(upbdefs_google_protobuf_FileOptions_is(m)); return upb_msgdef_itof(m, 41); }
UPB_INLINE const upb_fielddef *upbdefs_google_protobuf_FileOptions_f_py_generic_services(const upb_msgdef *m) { UPB_ASSERT(upbdefs_google_protobuf_FileOptions_is(m)); return upb_msgdef_itof(m, 18); } UPB_INLINE const upb_fielddef *upbdefs_google_protobuf_FileOptions_f_py_generic_services(const upb_msgdef *m) { UPB_ASSERT(upbdefs_google_protobuf_FileOptions_is(m)); return upb_msgdef_itof(m, 18); }
UPB_INLINE const upb_fielddef *upbdefs_google_protobuf_FileOptions_f_uninterpreted_option(const upb_msgdef *m) { UPB_ASSERT(upbdefs_google_protobuf_FileOptions_is(m)); return upb_msgdef_itof(m, 999); } UPB_INLINE const upb_fielddef *upbdefs_google_protobuf_FileOptions_f_uninterpreted_option(const upb_msgdef *m) { UPB_ASSERT(upbdefs_google_protobuf_FileOptions_is(m)); return upb_msgdef_itof(m, 999); }
UPB_INLINE const upb_fielddef *upbdefs_google_protobuf_MessageOptions_f_deprecated(const upb_msgdef *m) { UPB_ASSERT(upbdefs_google_protobuf_MessageOptions_is(m)); return upb_msgdef_itof(m, 3); } UPB_INLINE const upb_fielddef *upbdefs_google_protobuf_MessageOptions_f_deprecated(const upb_msgdef *m) { UPB_ASSERT(upbdefs_google_protobuf_MessageOptions_is(m)); return upb_msgdef_itof(m, 3); }
@ -8326,16 +8343,8 @@ UPB_INLINE upb_decoderet upb_decoderet_make(const char *p, uint64_t val) {
return ret; return ret;
} }
/* Four functions for decoding a varint of at most eight bytes. They are all
* functionally identical, but are implemented in different ways and likely have
* different performance profiles. We keep them around for performance testing.
*
* Note that these functions may not read byte-by-byte, so they must not be used
* unless there are at least eight bytes left in the buffer! */
upb_decoderet upb_vdecode_max8_branch32(upb_decoderet r); upb_decoderet upb_vdecode_max8_branch32(upb_decoderet r);
upb_decoderet upb_vdecode_max8_branch64(upb_decoderet r); upb_decoderet upb_vdecode_max8_branch64(upb_decoderet r);
upb_decoderet upb_vdecode_max8_wright(upb_decoderet r);
upb_decoderet upb_vdecode_max8_massimino(upb_decoderet r);
/* Template for a function that checks the first two bytes with branching /* Template for a function that checks the first two bytes with branching
* and dispatches 2-10 bytes with a separate function. Note that this may read * and dispatches 2-10 bytes with a separate function. Note that this may read
@ -8360,8 +8369,6 @@ UPB_INLINE upb_decoderet upb_vdecode_check2_ ## name(const char *_p) { \
UPB_VARINT_DECODER_CHECK2(branch32, upb_vdecode_max8_branch32) UPB_VARINT_DECODER_CHECK2(branch32, upb_vdecode_max8_branch32)
UPB_VARINT_DECODER_CHECK2(branch64, upb_vdecode_max8_branch64) UPB_VARINT_DECODER_CHECK2(branch64, upb_vdecode_max8_branch64)
UPB_VARINT_DECODER_CHECK2(wright, upb_vdecode_max8_wright)
UPB_VARINT_DECODER_CHECK2(massimino, upb_vdecode_max8_massimino)
#undef UPB_VARINT_DECODER_CHECK2 #undef UPB_VARINT_DECODER_CHECK2
/* Our canonical functions for decoding varints, based on the currently /* Our canonical functions for decoding varints, based on the currently
@ -8373,10 +8380,6 @@ UPB_INLINE upb_decoderet upb_vdecode_fast(const char *p) {
return upb_vdecode_check2_branch32(p); return upb_vdecode_check2_branch32(p);
} }
UPB_INLINE upb_decoderet upb_vdecode_max8_fast(upb_decoderet r) {
return upb_vdecode_max8_massimino(r);
}
/* Encoding *******************************************************************/ /* Encoding *******************************************************************/

@ -145,6 +145,7 @@ class Descriptor
->optional('csharp_namespace', \Google\Protobuf\Internal\GPBType::STRING, 37) ->optional('csharp_namespace', \Google\Protobuf\Internal\GPBType::STRING, 37)
->optional('swift_prefix', \Google\Protobuf\Internal\GPBType::STRING, 39) ->optional('swift_prefix', \Google\Protobuf\Internal\GPBType::STRING, 39)
->optional('php_class_prefix', \Google\Protobuf\Internal\GPBType::STRING, 40) ->optional('php_class_prefix', \Google\Protobuf\Internal\GPBType::STRING, 40)
->optional('php_namespace', \Google\Protobuf\Internal\GPBType::STRING, 41)
->repeated('uninterpreted_option', \Google\Protobuf\Internal\GPBType::MESSAGE, 999, 'google.protobuf.internal.UninterpretedOption') ->repeated('uninterpreted_option', \Google\Protobuf\Internal\GPBType::MESSAGE, 999, 'google.protobuf.internal.UninterpretedOption')
->finalizeToPool(); ->finalizeToPool();

@ -97,6 +97,8 @@ class DescriptorProto extends \Google\Protobuf\Internal\Message
GPBUtil::checkString($var, True); GPBUtil::checkString($var, True);
$this->name = $var; $this->name = $var;
$this->has_name = true; $this->has_name = true;
return $this;
} }
public function hasName() public function hasName()
@ -120,6 +122,8 @@ class DescriptorProto extends \Google\Protobuf\Internal\Message
$arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Internal\FieldDescriptorProto::class); $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Internal\FieldDescriptorProto::class);
$this->field = $arr; $this->field = $arr;
$this->has_field = true; $this->has_field = true;
return $this;
} }
public function hasField() public function hasField()
@ -143,6 +147,8 @@ class DescriptorProto extends \Google\Protobuf\Internal\Message
$arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Internal\FieldDescriptorProto::class); $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Internal\FieldDescriptorProto::class);
$this->extension = $arr; $this->extension = $arr;
$this->has_extension = true; $this->has_extension = true;
return $this;
} }
public function hasExtension() public function hasExtension()
@ -166,6 +172,8 @@ class DescriptorProto extends \Google\Protobuf\Internal\Message
$arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Internal\DescriptorProto::class); $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Internal\DescriptorProto::class);
$this->nested_type = $arr; $this->nested_type = $arr;
$this->has_nested_type = true; $this->has_nested_type = true;
return $this;
} }
public function hasNestedType() public function hasNestedType()
@ -189,6 +197,8 @@ class DescriptorProto extends \Google\Protobuf\Internal\Message
$arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Internal\EnumDescriptorProto::class); $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Internal\EnumDescriptorProto::class);
$this->enum_type = $arr; $this->enum_type = $arr;
$this->has_enum_type = true; $this->has_enum_type = true;
return $this;
} }
public function hasEnumType() public function hasEnumType()
@ -212,6 +222,8 @@ class DescriptorProto extends \Google\Protobuf\Internal\Message
$arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Internal\DescriptorProto_ExtensionRange::class); $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Internal\DescriptorProto_ExtensionRange::class);
$this->extension_range = $arr; $this->extension_range = $arr;
$this->has_extension_range = true; $this->has_extension_range = true;
return $this;
} }
public function hasExtensionRange() public function hasExtensionRange()
@ -235,6 +247,8 @@ class DescriptorProto extends \Google\Protobuf\Internal\Message
$arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Internal\OneofDescriptorProto::class); $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Internal\OneofDescriptorProto::class);
$this->oneof_decl = $arr; $this->oneof_decl = $arr;
$this->has_oneof_decl = true; $this->has_oneof_decl = true;
return $this;
} }
public function hasOneofDecl() public function hasOneofDecl()
@ -258,6 +272,8 @@ class DescriptorProto extends \Google\Protobuf\Internal\Message
GPBUtil::checkMessage($var, \Google\Protobuf\Internal\MessageOptions::class); GPBUtil::checkMessage($var, \Google\Protobuf\Internal\MessageOptions::class);
$this->options = $var; $this->options = $var;
$this->has_options = true; $this->has_options = true;
return $this;
} }
public function hasOptions() public function hasOptions()
@ -281,6 +297,8 @@ class DescriptorProto extends \Google\Protobuf\Internal\Message
$arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Internal\DescriptorProto_ReservedRange::class); $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Internal\DescriptorProto_ReservedRange::class);
$this->reserved_range = $arr; $this->reserved_range = $arr;
$this->has_reserved_range = true; $this->has_reserved_range = true;
return $this;
} }
public function hasReservedRange() public function hasReservedRange()
@ -314,6 +332,8 @@ class DescriptorProto extends \Google\Protobuf\Internal\Message
$arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING); $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
$this->reserved_name = $arr; $this->reserved_name = $arr;
$this->has_reserved_name = true; $this->has_reserved_name = true;
return $this;
} }
public function hasReservedName() public function hasReservedName()

@ -48,6 +48,8 @@ class DescriptorProto_ExtensionRange extends \Google\Protobuf\Internal\Message
GPBUtil::checkInt32($var); GPBUtil::checkInt32($var);
$this->start = $var; $this->start = $var;
$this->has_start = true; $this->has_start = true;
return $this;
} }
public function hasStart() public function hasStart()
@ -71,6 +73,8 @@ class DescriptorProto_ExtensionRange extends \Google\Protobuf\Internal\Message
GPBUtil::checkInt32($var); GPBUtil::checkInt32($var);
$this->end = $var; $this->end = $var;
$this->has_end = true; $this->has_end = true;
return $this;
} }
public function hasEnd() public function hasEnd()

@ -70,6 +70,8 @@ class DescriptorProto_ReservedRange extends \Google\Protobuf\Internal\Message
GPBUtil::checkInt32($var); GPBUtil::checkInt32($var);
$this->start = $var; $this->start = $var;
$this->has_start = true; $this->has_start = true;
return $this;
} }
public function hasStart() public function hasStart()
@ -101,6 +103,8 @@ class DescriptorProto_ReservedRange extends \Google\Protobuf\Internal\Message
GPBUtil::checkInt32($var); GPBUtil::checkInt32($var);
$this->end = $var; $this->end = $var;
$this->has_end = true; $this->has_end = true;
return $this;
} }
public function hasEnd() public function hasEnd()

@ -57,6 +57,8 @@ class EnumDescriptorProto extends \Google\Protobuf\Internal\Message
GPBUtil::checkString($var, True); GPBUtil::checkString($var, True);
$this->name = $var; $this->name = $var;
$this->has_name = true; $this->has_name = true;
return $this;
} }
public function hasName() public function hasName()
@ -80,6 +82,8 @@ class EnumDescriptorProto extends \Google\Protobuf\Internal\Message
$arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Internal\EnumValueDescriptorProto::class); $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Internal\EnumValueDescriptorProto::class);
$this->value = $arr; $this->value = $arr;
$this->has_value = true; $this->has_value = true;
return $this;
} }
public function hasValue() public function hasValue()
@ -103,6 +107,8 @@ class EnumDescriptorProto extends \Google\Protobuf\Internal\Message
GPBUtil::checkMessage($var, \Google\Protobuf\Internal\EnumOptions::class); GPBUtil::checkMessage($var, \Google\Protobuf\Internal\EnumOptions::class);
$this->options = $var; $this->options = $var;
$this->has_options = true; $this->has_options = true;
return $this;
} }
public function hasOptions() public function hasOptions()

@ -79,6 +79,8 @@ class EnumOptions extends \Google\Protobuf\Internal\Message
GPBUtil::checkBool($var); GPBUtil::checkBool($var);
$this->allow_alias = $var; $this->allow_alias = $var;
$this->has_allow_alias = true; $this->has_allow_alias = true;
return $this;
} }
public function hasAllowAlias() public function hasAllowAlias()
@ -116,6 +118,8 @@ class EnumOptions extends \Google\Protobuf\Internal\Message
GPBUtil::checkBool($var); GPBUtil::checkBool($var);
$this->deprecated = $var; $this->deprecated = $var;
$this->has_deprecated = true; $this->has_deprecated = true;
return $this;
} }
public function hasDeprecated() public function hasDeprecated()
@ -147,6 +151,8 @@ class EnumOptions extends \Google\Protobuf\Internal\Message
$arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Internal\UninterpretedOption::class); $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Internal\UninterpretedOption::class);
$this->uninterpreted_option = $arr; $this->uninterpreted_option = $arr;
$this->has_uninterpreted_option = true; $this->has_uninterpreted_option = true;
return $this;
} }
public function hasUninterpretedOption() public function hasUninterpretedOption()

@ -57,6 +57,8 @@ class EnumValueDescriptorProto extends \Google\Protobuf\Internal\Message
GPBUtil::checkString($var, True); GPBUtil::checkString($var, True);
$this->name = $var; $this->name = $var;
$this->has_name = true; $this->has_name = true;
return $this;
} }
public function hasName() public function hasName()
@ -80,6 +82,8 @@ class EnumValueDescriptorProto extends \Google\Protobuf\Internal\Message
GPBUtil::checkInt32($var); GPBUtil::checkInt32($var);
$this->number = $var; $this->number = $var;
$this->has_number = true; $this->has_number = true;
return $this;
} }
public function hasNumber() public function hasNumber()
@ -103,6 +107,8 @@ class EnumValueDescriptorProto extends \Google\Protobuf\Internal\Message
GPBUtil::checkMessage($var, \Google\Protobuf\Internal\EnumValueOptions::class); GPBUtil::checkMessage($var, \Google\Protobuf\Internal\EnumValueOptions::class);
$this->options = $var; $this->options = $var;
$this->has_options = true; $this->has_options = true;
return $this;
} }
public function hasOptions() public function hasOptions()

@ -73,6 +73,8 @@ class EnumValueOptions extends \Google\Protobuf\Internal\Message
GPBUtil::checkBool($var); GPBUtil::checkBool($var);
$this->deprecated = $var; $this->deprecated = $var;
$this->has_deprecated = true; $this->has_deprecated = true;
return $this;
} }
public function hasDeprecated() public function hasDeprecated()
@ -104,6 +106,8 @@ class EnumValueOptions extends \Google\Protobuf\Internal\Message
$arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Internal\UninterpretedOption::class); $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Internal\UninterpretedOption::class);
$this->uninterpreted_option = $arr; $this->uninterpreted_option = $arr;
$this->has_uninterpreted_option = true; $this->has_uninterpreted_option = true;
return $this;
} }
public function hasUninterpretedOption() public function hasUninterpretedOption()

@ -130,6 +130,8 @@ class FieldDescriptorProto extends \Google\Protobuf\Internal\Message
GPBUtil::checkString($var, True); GPBUtil::checkString($var, True);
$this->name = $var; $this->name = $var;
$this->has_name = true; $this->has_name = true;
return $this;
} }
public function hasName() public function hasName()
@ -153,6 +155,8 @@ class FieldDescriptorProto extends \Google\Protobuf\Internal\Message
GPBUtil::checkInt32($var); GPBUtil::checkInt32($var);
$this->number = $var; $this->number = $var;
$this->has_number = true; $this->has_number = true;
return $this;
} }
public function hasNumber() public function hasNumber()
@ -176,6 +180,8 @@ class FieldDescriptorProto extends \Google\Protobuf\Internal\Message
GPBUtil::checkEnum($var, \Google\Protobuf\Internal\FieldDescriptorProto_Label::class); GPBUtil::checkEnum($var, \Google\Protobuf\Internal\FieldDescriptorProto_Label::class);
$this->label = $var; $this->label = $var;
$this->has_label = true; $this->has_label = true;
return $this;
} }
public function hasLabel() public function hasLabel()
@ -209,6 +215,8 @@ class FieldDescriptorProto extends \Google\Protobuf\Internal\Message
GPBUtil::checkEnum($var, \Google\Protobuf\Internal\FieldDescriptorProto_Type::class); GPBUtil::checkEnum($var, \Google\Protobuf\Internal\FieldDescriptorProto_Type::class);
$this->type = $var; $this->type = $var;
$this->has_type = true; $this->has_type = true;
return $this;
} }
public function hasType() public function hasType()
@ -248,6 +256,8 @@ class FieldDescriptorProto extends \Google\Protobuf\Internal\Message
GPBUtil::checkString($var, True); GPBUtil::checkString($var, True);
$this->type_name = $var; $this->type_name = $var;
$this->has_type_name = true; $this->has_type_name = true;
return $this;
} }
public function hasTypeName() public function hasTypeName()
@ -281,6 +291,8 @@ class FieldDescriptorProto extends \Google\Protobuf\Internal\Message
GPBUtil::checkString($var, True); GPBUtil::checkString($var, True);
$this->extendee = $var; $this->extendee = $var;
$this->has_extendee = true; $this->has_extendee = true;
return $this;
} }
public function hasExtendee() public function hasExtendee()
@ -320,6 +332,8 @@ class FieldDescriptorProto extends \Google\Protobuf\Internal\Message
GPBUtil::checkString($var, True); GPBUtil::checkString($var, True);
$this->default_value = $var; $this->default_value = $var;
$this->has_default_value = true; $this->has_default_value = true;
return $this;
} }
public function hasDefaultValue() public function hasDefaultValue()
@ -353,6 +367,8 @@ class FieldDescriptorProto extends \Google\Protobuf\Internal\Message
GPBUtil::checkInt32($var); GPBUtil::checkInt32($var);
$this->oneof_index = $var; $this->oneof_index = $var;
$this->has_oneof_index = true; $this->has_oneof_index = true;
return $this;
} }
public function hasOneofIndex() public function hasOneofIndex()
@ -390,6 +406,8 @@ class FieldDescriptorProto extends \Google\Protobuf\Internal\Message
GPBUtil::checkString($var, True); GPBUtil::checkString($var, True);
$this->json_name = $var; $this->json_name = $var;
$this->has_json_name = true; $this->has_json_name = true;
return $this;
} }
public function hasJsonName() public function hasJsonName()
@ -413,6 +431,8 @@ class FieldDescriptorProto extends \Google\Protobuf\Internal\Message
GPBUtil::checkMessage($var, \Google\Protobuf\Internal\FieldOptions::class); GPBUtil::checkMessage($var, \Google\Protobuf\Internal\FieldOptions::class);
$this->options = $var; $this->options = $var;
$this->has_options = true; $this->has_options = true;
return $this;
} }
public function hasOptions() public function hasOptions()

@ -156,6 +156,8 @@ class FieldOptions extends \Google\Protobuf\Internal\Message
GPBUtil::checkEnum($var, \Google\Protobuf\Internal\FieldOptions_CType::class); GPBUtil::checkEnum($var, \Google\Protobuf\Internal\FieldOptions_CType::class);
$this->ctype = $var; $this->ctype = $var;
$this->has_ctype = true; $this->has_ctype = true;
return $this;
} }
public function hasCtype() public function hasCtype()
@ -195,6 +197,8 @@ class FieldOptions extends \Google\Protobuf\Internal\Message
GPBUtil::checkBool($var); GPBUtil::checkBool($var);
$this->packed = $var; $this->packed = $var;
$this->has_packed = true; $this->has_packed = true;
return $this;
} }
public function hasPacked() public function hasPacked()
@ -242,6 +246,8 @@ class FieldOptions extends \Google\Protobuf\Internal\Message
GPBUtil::checkEnum($var, \Google\Protobuf\Internal\FieldOptions_JSType::class); GPBUtil::checkEnum($var, \Google\Protobuf\Internal\FieldOptions_JSType::class);
$this->jstype = $var; $this->jstype = $var;
$this->has_jstype = true; $this->has_jstype = true;
return $this;
} }
public function hasJstype() public function hasJstype()
@ -319,6 +325,8 @@ class FieldOptions extends \Google\Protobuf\Internal\Message
GPBUtil::checkBool($var); GPBUtil::checkBool($var);
$this->lazy = $var; $this->lazy = $var;
$this->has_lazy = true; $this->has_lazy = true;
return $this;
} }
public function hasLazy() public function hasLazy()
@ -356,6 +364,8 @@ class FieldOptions extends \Google\Protobuf\Internal\Message
GPBUtil::checkBool($var); GPBUtil::checkBool($var);
$this->deprecated = $var; $this->deprecated = $var;
$this->has_deprecated = true; $this->has_deprecated = true;
return $this;
} }
public function hasDeprecated() public function hasDeprecated()
@ -387,6 +397,8 @@ class FieldOptions extends \Google\Protobuf\Internal\Message
GPBUtil::checkBool($var); GPBUtil::checkBool($var);
$this->weak = $var; $this->weak = $var;
$this->has_weak = true; $this->has_weak = true;
return $this;
} }
public function hasWeak() public function hasWeak()
@ -418,6 +430,8 @@ class FieldOptions extends \Google\Protobuf\Internal\Message
$arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Internal\UninterpretedOption::class); $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Internal\UninterpretedOption::class);
$this->uninterpreted_option = $arr; $this->uninterpreted_option = $arr;
$this->has_uninterpreted_option = true; $this->has_uninterpreted_option = true;
return $this;
} }
public function hasUninterpretedOption() public function hasUninterpretedOption()

@ -147,6 +147,8 @@ class FileDescriptorProto extends \Google\Protobuf\Internal\Message
GPBUtil::checkString($var, True); GPBUtil::checkString($var, True);
$this->name = $var; $this->name = $var;
$this->has_name = true; $this->has_name = true;
return $this;
} }
public function hasName() public function hasName()
@ -178,6 +180,8 @@ class FileDescriptorProto extends \Google\Protobuf\Internal\Message
GPBUtil::checkString($var, True); GPBUtil::checkString($var, True);
$this->package = $var; $this->package = $var;
$this->has_package = true; $this->has_package = true;
return $this;
} }
public function hasPackage() public function hasPackage()
@ -209,6 +213,8 @@ class FileDescriptorProto extends \Google\Protobuf\Internal\Message
$arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING); $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
$this->dependency = $arr; $this->dependency = $arr;
$this->has_dependency = true; $this->has_dependency = true;
return $this;
} }
public function hasDependency() public function hasDependency()
@ -240,6 +246,8 @@ class FileDescriptorProto extends \Google\Protobuf\Internal\Message
$arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::INT32); $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::INT32);
$this->public_dependency = $arr; $this->public_dependency = $arr;
$this->has_public_dependency = true; $this->has_public_dependency = true;
return $this;
} }
public function hasPublicDependency() public function hasPublicDependency()
@ -273,6 +281,8 @@ class FileDescriptorProto extends \Google\Protobuf\Internal\Message
$arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::INT32); $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::INT32);
$this->weak_dependency = $arr; $this->weak_dependency = $arr;
$this->has_weak_dependency = true; $this->has_weak_dependency = true;
return $this;
} }
public function hasWeakDependency() public function hasWeakDependency()
@ -304,6 +314,8 @@ class FileDescriptorProto extends \Google\Protobuf\Internal\Message
$arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Internal\DescriptorProto::class); $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Internal\DescriptorProto::class);
$this->message_type = $arr; $this->message_type = $arr;
$this->has_message_type = true; $this->has_message_type = true;
return $this;
} }
public function hasMessageType() public function hasMessageType()
@ -327,6 +339,8 @@ class FileDescriptorProto extends \Google\Protobuf\Internal\Message
$arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Internal\EnumDescriptorProto::class); $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Internal\EnumDescriptorProto::class);
$this->enum_type = $arr; $this->enum_type = $arr;
$this->has_enum_type = true; $this->has_enum_type = true;
return $this;
} }
public function hasEnumType() public function hasEnumType()
@ -350,6 +364,8 @@ class FileDescriptorProto extends \Google\Protobuf\Internal\Message
$arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Internal\ServiceDescriptorProto::class); $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Internal\ServiceDescriptorProto::class);
$this->service = $arr; $this->service = $arr;
$this->has_service = true; $this->has_service = true;
return $this;
} }
public function hasService() public function hasService()
@ -373,6 +389,8 @@ class FileDescriptorProto extends \Google\Protobuf\Internal\Message
$arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Internal\FieldDescriptorProto::class); $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Internal\FieldDescriptorProto::class);
$this->extension = $arr; $this->extension = $arr;
$this->has_extension = true; $this->has_extension = true;
return $this;
} }
public function hasExtension() public function hasExtension()
@ -396,6 +414,8 @@ class FileDescriptorProto extends \Google\Protobuf\Internal\Message
GPBUtil::checkMessage($var, \Google\Protobuf\Internal\FileOptions::class); GPBUtil::checkMessage($var, \Google\Protobuf\Internal\FileOptions::class);
$this->options = $var; $this->options = $var;
$this->has_options = true; $this->has_options = true;
return $this;
} }
public function hasOptions() public function hasOptions()
@ -433,6 +453,8 @@ class FileDescriptorProto extends \Google\Protobuf\Internal\Message
GPBUtil::checkMessage($var, \Google\Protobuf\Internal\SourceCodeInfo::class); GPBUtil::checkMessage($var, \Google\Protobuf\Internal\SourceCodeInfo::class);
$this->source_code_info = $var; $this->source_code_info = $var;
$this->has_source_code_info = true; $this->has_source_code_info = true;
return $this;
} }
public function hasSourceCodeInfo() public function hasSourceCodeInfo()
@ -466,6 +488,8 @@ class FileDescriptorProto extends \Google\Protobuf\Internal\Message
GPBUtil::checkString($var, True); GPBUtil::checkString($var, True);
$this->syntax = $var; $this->syntax = $var;
$this->has_syntax = true; $this->has_syntax = true;
return $this;
} }
public function hasSyntax() public function hasSyntax()

@ -48,6 +48,8 @@ class FileDescriptorSet extends \Google\Protobuf\Internal\Message
$arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Internal\FileDescriptorProto::class); $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Internal\FileDescriptorProto::class);
$this->file = $arr; $this->file = $arr;
$this->has_file = true; $this->has_file = true;
return $this;
} }
public function hasFile() public function hasFile()

@ -186,6 +186,17 @@ class FileOptions extends \Google\Protobuf\Internal\Message
*/ */
private $php_class_prefix = ''; private $php_class_prefix = '';
private $has_php_class_prefix = false; private $has_php_class_prefix = false;
/**
* <pre>
* Use this option to change the namespace of php generated classes. Default
* is empty. When this option is empty, the package name will be used for
* determining the namespace.
* </pre>
*
* <code>optional string php_namespace = 41;</code>
*/
private $php_namespace = '';
private $has_php_namespace = false;
/** /**
* <pre> * <pre>
* The parser stores options it doesn't recognize here. See above. * The parser stores options it doesn't recognize here. See above.
@ -231,6 +242,8 @@ class FileOptions extends \Google\Protobuf\Internal\Message
GPBUtil::checkString($var, True); GPBUtil::checkString($var, True);
$this->java_package = $var; $this->java_package = $var;
$this->has_java_package = true; $this->has_java_package = true;
return $this;
} }
public function hasJavaPackage() public function hasJavaPackage()
@ -270,6 +283,8 @@ class FileOptions extends \Google\Protobuf\Internal\Message
GPBUtil::checkString($var, True); GPBUtil::checkString($var, True);
$this->java_outer_classname = $var; $this->java_outer_classname = $var;
$this->has_java_outer_classname = true; $this->has_java_outer_classname = true;
return $this;
} }
public function hasJavaOuterClassname() public function hasJavaOuterClassname()
@ -311,6 +326,8 @@ class FileOptions extends \Google\Protobuf\Internal\Message
GPBUtil::checkBool($var); GPBUtil::checkBool($var);
$this->java_multiple_files = $var; $this->java_multiple_files = $var;
$this->has_java_multiple_files = true; $this->has_java_multiple_files = true;
return $this;
} }
public function hasJavaMultipleFiles() public function hasJavaMultipleFiles()
@ -342,6 +359,8 @@ class FileOptions extends \Google\Protobuf\Internal\Message
GPBUtil::checkBool($var); GPBUtil::checkBool($var);
$this->java_generate_equals_and_hash = $var; $this->java_generate_equals_and_hash = $var;
$this->has_java_generate_equals_and_hash = true; $this->has_java_generate_equals_and_hash = true;
return $this;
} }
public function hasJavaGenerateEqualsAndHash() public function hasJavaGenerateEqualsAndHash()
@ -383,6 +402,8 @@ class FileOptions extends \Google\Protobuf\Internal\Message
GPBUtil::checkBool($var); GPBUtil::checkBool($var);
$this->java_string_check_utf8 = $var; $this->java_string_check_utf8 = $var;
$this->has_java_string_check_utf8 = true; $this->has_java_string_check_utf8 = true;
return $this;
} }
public function hasJavaStringCheckUtf8() public function hasJavaStringCheckUtf8()
@ -406,6 +427,8 @@ class FileOptions extends \Google\Protobuf\Internal\Message
GPBUtil::checkEnum($var, \Google\Protobuf\Internal\FileOptions_OptimizeMode::class); GPBUtil::checkEnum($var, \Google\Protobuf\Internal\FileOptions_OptimizeMode::class);
$this->optimize_for = $var; $this->optimize_for = $var;
$this->has_optimize_for = true; $this->has_optimize_for = true;
return $this;
} }
public function hasOptimizeFor() public function hasOptimizeFor()
@ -445,6 +468,8 @@ class FileOptions extends \Google\Protobuf\Internal\Message
GPBUtil::checkString($var, True); GPBUtil::checkString($var, True);
$this->go_package = $var; $this->go_package = $var;
$this->has_go_package = true; $this->has_go_package = true;
return $this;
} }
public function hasGoPackage() public function hasGoPackage()
@ -492,6 +517,8 @@ class FileOptions extends \Google\Protobuf\Internal\Message
GPBUtil::checkBool($var); GPBUtil::checkBool($var);
$this->cc_generic_services = $var; $this->cc_generic_services = $var;
$this->has_cc_generic_services = true; $this->has_cc_generic_services = true;
return $this;
} }
public function hasCcGenericServices() public function hasCcGenericServices()
@ -515,6 +542,8 @@ class FileOptions extends \Google\Protobuf\Internal\Message
GPBUtil::checkBool($var); GPBUtil::checkBool($var);
$this->java_generic_services = $var; $this->java_generic_services = $var;
$this->has_java_generic_services = true; $this->has_java_generic_services = true;
return $this;
} }
public function hasJavaGenericServices() public function hasJavaGenericServices()
@ -538,6 +567,8 @@ class FileOptions extends \Google\Protobuf\Internal\Message
GPBUtil::checkBool($var); GPBUtil::checkBool($var);
$this->py_generic_services = $var; $this->py_generic_services = $var;
$this->has_py_generic_services = true; $this->has_py_generic_services = true;
return $this;
} }
public function hasPyGenericServices() public function hasPyGenericServices()
@ -575,6 +606,8 @@ class FileOptions extends \Google\Protobuf\Internal\Message
GPBUtil::checkBool($var); GPBUtil::checkBool($var);
$this->deprecated = $var; $this->deprecated = $var;
$this->has_deprecated = true; $this->has_deprecated = true;
return $this;
} }
public function hasDeprecated() public function hasDeprecated()
@ -608,6 +641,8 @@ class FileOptions extends \Google\Protobuf\Internal\Message
GPBUtil::checkBool($var); GPBUtil::checkBool($var);
$this->cc_enable_arenas = $var; $this->cc_enable_arenas = $var;
$this->has_cc_enable_arenas = true; $this->has_cc_enable_arenas = true;
return $this;
} }
public function hasCcEnableArenas() public function hasCcEnableArenas()
@ -641,6 +676,8 @@ class FileOptions extends \Google\Protobuf\Internal\Message
GPBUtil::checkString($var, True); GPBUtil::checkString($var, True);
$this->objc_class_prefix = $var; $this->objc_class_prefix = $var;
$this->has_objc_class_prefix = true; $this->has_objc_class_prefix = true;
return $this;
} }
public function hasObjcClassPrefix() public function hasObjcClassPrefix()
@ -672,6 +709,8 @@ class FileOptions extends \Google\Protobuf\Internal\Message
GPBUtil::checkString($var, True); GPBUtil::checkString($var, True);
$this->csharp_namespace = $var; $this->csharp_namespace = $var;
$this->has_csharp_namespace = true; $this->has_csharp_namespace = true;
return $this;
} }
public function hasCsharpNamespace() public function hasCsharpNamespace()
@ -709,6 +748,8 @@ class FileOptions extends \Google\Protobuf\Internal\Message
GPBUtil::checkString($var, True); GPBUtil::checkString($var, True);
$this->swift_prefix = $var; $this->swift_prefix = $var;
$this->has_swift_prefix = true; $this->has_swift_prefix = true;
return $this;
} }
public function hasSwiftPrefix() public function hasSwiftPrefix()
@ -742,6 +783,8 @@ class FileOptions extends \Google\Protobuf\Internal\Message
GPBUtil::checkString($var, True); GPBUtil::checkString($var, True);
$this->php_class_prefix = $var; $this->php_class_prefix = $var;
$this->has_php_class_prefix = true; $this->has_php_class_prefix = true;
return $this;
} }
public function hasPhpClassPrefix() public function hasPhpClassPrefix()
@ -749,6 +792,43 @@ class FileOptions extends \Google\Protobuf\Internal\Message
return $this->has_php_class_prefix; return $this->has_php_class_prefix;
} }
/**
* <pre>
* Use this option to change the namespace of php generated classes. Default
* is empty. When this option is empty, the package name will be used for
* determining the namespace.
* </pre>
*
* <code>optional string php_namespace = 41;</code>
*/
public function getPhpNamespace()
{
return $this->php_namespace;
}
/**
* <pre>
* Use this option to change the namespace of php generated classes. Default
* is empty. When this option is empty, the package name will be used for
* determining the namespace.
* </pre>
*
* <code>optional string php_namespace = 41;</code>
*/
public function setPhpNamespace($var)
{
GPBUtil::checkString($var, True);
$this->php_namespace = $var;
$this->has_php_namespace = true;
return $this;
}
public function hasPhpNamespace()
{
return $this->has_php_namespace;
}
/** /**
* <pre> * <pre>
* The parser stores options it doesn't recognize here. See above. * The parser stores options it doesn't recognize here. See above.
@ -773,6 +853,8 @@ class FileOptions extends \Google\Protobuf\Internal\Message
$arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Internal\UninterpretedOption::class); $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Internal\UninterpretedOption::class);
$this->uninterpreted_option = $arr; $this->uninterpreted_option = $arr;
$this->has_uninterpreted_option = true; $this->has_uninterpreted_option = true;
return $this;
} }
public function hasUninterpretedOption() public function hasUninterpretedOption()

@ -64,6 +64,8 @@ class GeneratedCodeInfo extends \Google\Protobuf\Internal\Message
$arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Internal\GeneratedCodeInfo_Annotation::class); $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Internal\GeneratedCodeInfo_Annotation::class);
$this->annotation = $arr; $this->annotation = $arr;
$this->has_annotation = true; $this->has_annotation = true;
return $this;
} }
public function hasAnnotation() public function hasAnnotation()

@ -88,6 +88,8 @@ class GeneratedCodeInfo_Annotation extends \Google\Protobuf\Internal\Message
$arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::INT32); $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::INT32);
$this->path = $arr; $this->path = $arr;
$this->has_path = true; $this->has_path = true;
return $this;
} }
public function hasPath() public function hasPath()
@ -119,6 +121,8 @@ class GeneratedCodeInfo_Annotation extends \Google\Protobuf\Internal\Message
GPBUtil::checkString($var, True); GPBUtil::checkString($var, True);
$this->source_file = $var; $this->source_file = $var;
$this->has_source_file = true; $this->has_source_file = true;
return $this;
} }
public function hasSourceFile() public function hasSourceFile()
@ -152,6 +156,8 @@ class GeneratedCodeInfo_Annotation extends \Google\Protobuf\Internal\Message
GPBUtil::checkInt32($var); GPBUtil::checkInt32($var);
$this->begin = $var; $this->begin = $var;
$this->has_begin = true; $this->has_begin = true;
return $this;
} }
public function hasBegin() public function hasBegin()
@ -187,6 +193,8 @@ class GeneratedCodeInfo_Annotation extends \Google\Protobuf\Internal\Message
GPBUtil::checkInt32($var); GPBUtil::checkInt32($var);
$this->end = $var; $this->end = $var;
$this->has_end = true; $this->has_end = true;
return $this;
} }
public function hasEnd() public function hasEnd()

@ -155,6 +155,8 @@ class MessageOptions extends \Google\Protobuf\Internal\Message
GPBUtil::checkBool($var); GPBUtil::checkBool($var);
$this->message_set_wire_format = $var; $this->message_set_wire_format = $var;
$this->has_message_set_wire_format = true; $this->has_message_set_wire_format = true;
return $this;
} }
public function hasMessageSetWireFormat() public function hasMessageSetWireFormat()
@ -190,6 +192,8 @@ class MessageOptions extends \Google\Protobuf\Internal\Message
GPBUtil::checkBool($var); GPBUtil::checkBool($var);
$this->no_standard_descriptor_accessor = $var; $this->no_standard_descriptor_accessor = $var;
$this->has_no_standard_descriptor_accessor = true; $this->has_no_standard_descriptor_accessor = true;
return $this;
} }
public function hasNoStandardDescriptorAccessor() public function hasNoStandardDescriptorAccessor()
@ -227,6 +231,8 @@ class MessageOptions extends \Google\Protobuf\Internal\Message
GPBUtil::checkBool($var); GPBUtil::checkBool($var);
$this->deprecated = $var; $this->deprecated = $var;
$this->has_deprecated = true; $this->has_deprecated = true;
return $this;
} }
public function hasDeprecated() public function hasDeprecated()
@ -292,6 +298,8 @@ class MessageOptions extends \Google\Protobuf\Internal\Message
GPBUtil::checkBool($var); GPBUtil::checkBool($var);
$this->map_entry = $var; $this->map_entry = $var;
$this->has_map_entry = true; $this->has_map_entry = true;
return $this;
} }
public function hasMapEntry() public function hasMapEntry()
@ -323,6 +331,8 @@ class MessageOptions extends \Google\Protobuf\Internal\Message
$arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Internal\UninterpretedOption::class); $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Internal\UninterpretedOption::class);
$this->uninterpreted_option = $arr; $this->uninterpreted_option = $arr;
$this->has_uninterpreted_option = true; $this->has_uninterpreted_option = true;
return $this;
} }
public function hasUninterpretedOption() public function hasUninterpretedOption()

@ -85,6 +85,8 @@ class MethodDescriptorProto extends \Google\Protobuf\Internal\Message
GPBUtil::checkString($var, True); GPBUtil::checkString($var, True);
$this->name = $var; $this->name = $var;
$this->has_name = true; $this->has_name = true;
return $this;
} }
public function hasName() public function hasName()
@ -118,6 +120,8 @@ class MethodDescriptorProto extends \Google\Protobuf\Internal\Message
GPBUtil::checkString($var, True); GPBUtil::checkString($var, True);
$this->input_type = $var; $this->input_type = $var;
$this->has_input_type = true; $this->has_input_type = true;
return $this;
} }
public function hasInputType() public function hasInputType()
@ -141,6 +145,8 @@ class MethodDescriptorProto extends \Google\Protobuf\Internal\Message
GPBUtil::checkString($var, True); GPBUtil::checkString($var, True);
$this->output_type = $var; $this->output_type = $var;
$this->has_output_type = true; $this->has_output_type = true;
return $this;
} }
public function hasOutputType() public function hasOutputType()
@ -164,6 +170,8 @@ class MethodDescriptorProto extends \Google\Protobuf\Internal\Message
GPBUtil::checkMessage($var, \Google\Protobuf\Internal\MethodOptions::class); GPBUtil::checkMessage($var, \Google\Protobuf\Internal\MethodOptions::class);
$this->options = $var; $this->options = $var;
$this->has_options = true; $this->has_options = true;
return $this;
} }
public function hasOptions() public function hasOptions()
@ -195,6 +203,8 @@ class MethodDescriptorProto extends \Google\Protobuf\Internal\Message
GPBUtil::checkBool($var); GPBUtil::checkBool($var);
$this->client_streaming = $var; $this->client_streaming = $var;
$this->has_client_streaming = true; $this->has_client_streaming = true;
return $this;
} }
public function hasClientStreaming() public function hasClientStreaming()
@ -226,6 +236,8 @@ class MethodDescriptorProto extends \Google\Protobuf\Internal\Message
GPBUtil::checkBool($var); GPBUtil::checkBool($var);
$this->server_streaming = $var; $this->server_streaming = $var;
$this->has_server_streaming = true; $this->has_server_streaming = true;
return $this;
} }
public function hasServerStreaming() public function hasServerStreaming()

@ -78,6 +78,8 @@ class MethodOptions extends \Google\Protobuf\Internal\Message
GPBUtil::checkBool($var); GPBUtil::checkBool($var);
$this->deprecated = $var; $this->deprecated = $var;
$this->has_deprecated = true; $this->has_deprecated = true;
return $this;
} }
public function hasDeprecated() public function hasDeprecated()
@ -101,6 +103,8 @@ class MethodOptions extends \Google\Protobuf\Internal\Message
GPBUtil::checkEnum($var, \Google\Protobuf\Internal\MethodOptions_IdempotencyLevel::class); GPBUtil::checkEnum($var, \Google\Protobuf\Internal\MethodOptions_IdempotencyLevel::class);
$this->idempotency_level = $var; $this->idempotency_level = $var;
$this->has_idempotency_level = true; $this->has_idempotency_level = true;
return $this;
} }
public function hasIdempotencyLevel() public function hasIdempotencyLevel()
@ -132,6 +136,8 @@ class MethodOptions extends \Google\Protobuf\Internal\Message
$arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Internal\UninterpretedOption::class); $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Internal\UninterpretedOption::class);
$this->uninterpreted_option = $arr; $this->uninterpreted_option = $arr;
$this->has_uninterpreted_option = true; $this->has_uninterpreted_option = true;
return $this;
} }
public function hasUninterpretedOption() public function hasUninterpretedOption()

@ -52,6 +52,8 @@ class OneofDescriptorProto extends \Google\Protobuf\Internal\Message
GPBUtil::checkString($var, True); GPBUtil::checkString($var, True);
$this->name = $var; $this->name = $var;
$this->has_name = true; $this->has_name = true;
return $this;
} }
public function hasName() public function hasName()
@ -75,6 +77,8 @@ class OneofDescriptorProto extends \Google\Protobuf\Internal\Message
GPBUtil::checkMessage($var, \Google\Protobuf\Internal\OneofOptions::class); GPBUtil::checkMessage($var, \Google\Protobuf\Internal\OneofOptions::class);
$this->options = $var; $this->options = $var;
$this->has_options = true; $this->has_options = true;
return $this;
} }
public function hasOptions() public function hasOptions()

@ -55,6 +55,8 @@ class OneofOptions extends \Google\Protobuf\Internal\Message
$arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Internal\UninterpretedOption::class); $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Internal\UninterpretedOption::class);
$this->uninterpreted_option = $arr; $this->uninterpreted_option = $arr;
$this->has_uninterpreted_option = true; $this->has_uninterpreted_option = true;
return $this;
} }
public function hasUninterpretedOption() public function hasUninterpretedOption()

@ -57,6 +57,8 @@ class ServiceDescriptorProto extends \Google\Protobuf\Internal\Message
GPBUtil::checkString($var, True); GPBUtil::checkString($var, True);
$this->name = $var; $this->name = $var;
$this->has_name = true; $this->has_name = true;
return $this;
} }
public function hasName() public function hasName()
@ -80,6 +82,8 @@ class ServiceDescriptorProto extends \Google\Protobuf\Internal\Message
$arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Internal\MethodDescriptorProto::class); $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Internal\MethodDescriptorProto::class);
$this->method = $arr; $this->method = $arr;
$this->has_method = true; $this->has_method = true;
return $this;
} }
public function hasMethod() public function hasMethod()
@ -103,6 +107,8 @@ class ServiceDescriptorProto extends \Google\Protobuf\Internal\Message
GPBUtil::checkMessage($var, \Google\Protobuf\Internal\ServiceOptions::class); GPBUtil::checkMessage($var, \Google\Protobuf\Internal\ServiceOptions::class);
$this->options = $var; $this->options = $var;
$this->has_options = true; $this->has_options = true;
return $this;
} }
public function hasOptions() public function hasOptions()

@ -73,6 +73,8 @@ class ServiceOptions extends \Google\Protobuf\Internal\Message
GPBUtil::checkBool($var); GPBUtil::checkBool($var);
$this->deprecated = $var; $this->deprecated = $var;
$this->has_deprecated = true; $this->has_deprecated = true;
return $this;
} }
public function hasDeprecated() public function hasDeprecated()
@ -104,6 +106,8 @@ class ServiceOptions extends \Google\Protobuf\Internal\Message
$arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Internal\UninterpretedOption::class); $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Internal\UninterpretedOption::class);
$this->uninterpreted_option = $arr; $this->uninterpreted_option = $arr;
$this->has_uninterpreted_option = true; $this->has_uninterpreted_option = true;
return $this;
} }
public function hasUninterpretedOption() public function hasUninterpretedOption()

@ -180,6 +180,8 @@ class SourceCodeInfo extends \Google\Protobuf\Internal\Message
$arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Internal\SourceCodeInfo_Location::class); $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Internal\SourceCodeInfo_Location::class);
$this->location = $arr; $this->location = $arr;
$this->has_location = true; $this->has_location = true;
return $this;
} }
public function hasLocation() public function hasLocation()

@ -182,6 +182,8 @@ class SourceCodeInfo_Location extends \Google\Protobuf\Internal\Message
$arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::INT32); $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::INT32);
$this->path = $arr; $this->path = $arr;
$this->has_path = true; $this->has_path = true;
return $this;
} }
public function hasPath() public function hasPath()
@ -221,6 +223,8 @@ class SourceCodeInfo_Location extends \Google\Protobuf\Internal\Message
$arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::INT32); $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::INT32);
$this->span = $arr; $this->span = $arr;
$this->has_span = true; $this->has_span = true;
return $this;
} }
public function hasSpan() public function hasSpan()
@ -322,6 +326,8 @@ class SourceCodeInfo_Location extends \Google\Protobuf\Internal\Message
GPBUtil::checkString($var, True); GPBUtil::checkString($var, True);
$this->leading_comments = $var; $this->leading_comments = $var;
$this->has_leading_comments = true; $this->has_leading_comments = true;
return $this;
} }
public function hasLeadingComments() public function hasLeadingComments()
@ -345,6 +351,8 @@ class SourceCodeInfo_Location extends \Google\Protobuf\Internal\Message
GPBUtil::checkString($var, True); GPBUtil::checkString($var, True);
$this->trailing_comments = $var; $this->trailing_comments = $var;
$this->has_trailing_comments = true; $this->has_trailing_comments = true;
return $this;
} }
public function hasTrailingComments() public function hasTrailingComments()
@ -368,6 +376,8 @@ class SourceCodeInfo_Location extends \Google\Protobuf\Internal\Message
$arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING); $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
$this->leading_detached_comments = $arr; $this->leading_detached_comments = $arr;
$this->has_leading_detached_comments = true; $this->has_leading_detached_comments = true;
return $this;
} }
public function hasLeadingDetachedComments() public function hasLeadingDetachedComments()

@ -87,6 +87,8 @@ class UninterpretedOption extends \Google\Protobuf\Internal\Message
$arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Internal\UninterpretedOption_NamePart::class); $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Internal\UninterpretedOption_NamePart::class);
$this->name = $arr; $this->name = $arr;
$this->has_name = true; $this->has_name = true;
return $this;
} }
public function hasName() public function hasName()
@ -120,6 +122,8 @@ class UninterpretedOption extends \Google\Protobuf\Internal\Message
GPBUtil::checkString($var, True); GPBUtil::checkString($var, True);
$this->identifier_value = $var; $this->identifier_value = $var;
$this->has_identifier_value = true; $this->has_identifier_value = true;
return $this;
} }
public function hasIdentifierValue() public function hasIdentifierValue()
@ -143,6 +147,8 @@ class UninterpretedOption extends \Google\Protobuf\Internal\Message
GPBUtil::checkUint64($var); GPBUtil::checkUint64($var);
$this->positive_int_value = $var; $this->positive_int_value = $var;
$this->has_positive_int_value = true; $this->has_positive_int_value = true;
return $this;
} }
public function hasPositiveIntValue() public function hasPositiveIntValue()
@ -166,6 +172,8 @@ class UninterpretedOption extends \Google\Protobuf\Internal\Message
GPBUtil::checkInt64($var); GPBUtil::checkInt64($var);
$this->negative_int_value = $var; $this->negative_int_value = $var;
$this->has_negative_int_value = true; $this->has_negative_int_value = true;
return $this;
} }
public function hasNegativeIntValue() public function hasNegativeIntValue()
@ -189,6 +197,8 @@ class UninterpretedOption extends \Google\Protobuf\Internal\Message
GPBUtil::checkDouble($var); GPBUtil::checkDouble($var);
$this->double_value = $var; $this->double_value = $var;
$this->has_double_value = true; $this->has_double_value = true;
return $this;
} }
public function hasDoubleValue() public function hasDoubleValue()
@ -212,6 +222,8 @@ class UninterpretedOption extends \Google\Protobuf\Internal\Message
GPBUtil::checkString($var, False); GPBUtil::checkString($var, False);
$this->string_value = $var; $this->string_value = $var;
$this->has_string_value = true; $this->has_string_value = true;
return $this;
} }
public function hasStringValue() public function hasStringValue()
@ -235,6 +247,8 @@ class UninterpretedOption extends \Google\Protobuf\Internal\Message
GPBUtil::checkString($var, True); GPBUtil::checkString($var, True);
$this->aggregate_value = $var; $this->aggregate_value = $var;
$this->has_aggregate_value = true; $this->has_aggregate_value = true;
return $this;
} }
public function hasAggregateValue() public function hasAggregateValue()

@ -56,6 +56,8 @@ class UninterpretedOption_NamePart extends \Google\Protobuf\Internal\Message
GPBUtil::checkString($var, True); GPBUtil::checkString($var, True);
$this->name_part = $var; $this->name_part = $var;
$this->has_name_part = true; $this->has_name_part = true;
return $this;
} }
public function hasNamePart() public function hasNamePart()
@ -79,6 +81,8 @@ class UninterpretedOption_NamePart extends \Google\Protobuf\Internal\Message
GPBUtil::checkBool($var); GPBUtil::checkBool($var);
$this->is_extension = $var; $this->is_extension = $var;
$this->has_is_extension = true; $this->has_is_extension = true;
return $this;
} }
public function hasIsExtension() public function hasIsExtension()

@ -282,6 +282,19 @@ function getFullClassName(
$class_name_without_package = $class_name_without_package =
getClassNameWithoutPackage($message_name_without_package, $file_proto); getClassNameWithoutPackage($message_name_without_package, $file_proto);
$option = $file_proto->getOptions();
if (!is_null($option) && $option->hasPhpNamespace()) {
$namespace = $option->getPhpNamespace();
if ($namespace !== "") {
$classname = $namespace . "\\" . $class_name_without_package;
return;
} else {
$classname = $class_name_without_package;
return;
}
}
if ($package === "") { if ($package === "") {
$classname = $class_name_without_package; $classname = $class_name_without_package;
} else { } else {

@ -9,9 +9,11 @@ use Google\Protobuf\Internal\RepeatedField;
use Google\Protobuf\Internal\MapField; use Google\Protobuf\Internal\MapField;
use Google\Protobuf\Internal\GPBType; use Google\Protobuf\Internal\GPBType;
use Foo\TestEnum; use Foo\TestEnum;
use Foo\TestIncludeNamespaceMessage;
use Foo\TestIncludePrefixMessage; use Foo\TestIncludePrefixMessage;
use Foo\TestMessage; use Foo\TestMessage;
use Foo\TestMessage_Sub; use Foo\TestMessage_Sub;
use Php\Test\TestNamespace;
class GeneratedClassTest extends TestBase class GeneratedClassTest extends TestBase
{ {
@ -867,6 +869,25 @@ class GeneratedClassTest extends TestBase
$this->assertSame(1, $m->getPrefixMessage()->getA()); $this->assertSame(1, $m->getPrefixMessage()->getA());
} }
#########################################################
# Test message with given namespace.
#########################################################
public function testNamespaceMessage()
{
$m = new TestIncludeNamespaceMessage();
$n = new TestNamespace();
$n->setA(1);
$m->setNamespaceMessage($n);
$this->assertSame(1, $m->getNamespaceMessage()->getA());
$n = new TestEmptyNamespace();
$n->setA(1);
$m->setEmptyNamespaceMessage($n);
$this->assertSame(1, $m->getEmptyNamespaceMessage()->getA());
}
######################################################### #########################################################
# Test prefix for reserved words. # Test prefix for reserved words.
######################################################### #########################################################

@ -7,10 +7,12 @@ require_once('generated/NoNamespaceMessage.php');
require_once('generated/NoNamespaceMessage_NestedEnum.php'); require_once('generated/NoNamespaceMessage_NestedEnum.php');
require_once('generated/PrefixEmpty.php'); require_once('generated/PrefixEmpty.php');
require_once('generated/PrefixTestPrefix.php'); require_once('generated/PrefixTestPrefix.php');
require_once('generated/TestEmptyNamespace.php');
require_once('generated/Bar/TestInclude.php'); require_once('generated/Bar/TestInclude.php');
require_once('generated/Foo/PBARRAY.php'); require_once('generated/Foo/PBARRAY.php');
require_once('generated/Foo/PBEmpty.php'); require_once('generated/Foo/PBEmpty.php');
require_once('generated/Foo/TestEnum.php'); require_once('generated/Foo/TestEnum.php');
require_once('generated/Foo/TestIncludeNamespaceMessage.php');
require_once('generated/Foo/TestIncludePrefixMessage.php'); require_once('generated/Foo/TestIncludePrefixMessage.php');
require_once('generated/Foo/TestMessage.php'); require_once('generated/Foo/TestMessage.php');
require_once('generated/Foo/TestMessage_Empty.php'); require_once('generated/Foo/TestMessage_Empty.php');
@ -20,9 +22,12 @@ require_once('generated/Foo/TestPackedMessage.php');
require_once('generated/Foo/TestPhpDoc.php'); require_once('generated/Foo/TestPhpDoc.php');
require_once('generated/Foo/TestUnpackedMessage.php'); require_once('generated/Foo/TestUnpackedMessage.php');
require_once('generated/GPBMetadata/Proto/Test.php'); require_once('generated/GPBMetadata/Proto/Test.php');
require_once('generated/GPBMetadata/Proto/TestEmptyPhpNamespace.php');
require_once('generated/GPBMetadata/Proto/TestInclude.php'); require_once('generated/GPBMetadata/Proto/TestInclude.php');
require_once('generated/GPBMetadata/Proto/TestNoNamespace.php'); require_once('generated/GPBMetadata/Proto/TestNoNamespace.php');
require_once('generated/GPBMetadata/Proto/TestPhpNamespace.php');
require_once('generated/GPBMetadata/Proto/TestPrefix.php'); require_once('generated/GPBMetadata/Proto/TestPrefix.php');
require_once('generated/Php/Test/TestNamespace.php');
require_once('test_util.php'); require_once('test_util.php');
use Google\Protobuf\Internal\RepeatedField; use Google\Protobuf\Internal\RepeatedField;

@ -2,6 +2,8 @@ syntax = "proto3";
import 'proto/test_include.proto'; import 'proto/test_include.proto';
import 'proto/test_no_namespace.proto'; import 'proto/test_no_namespace.proto';
import 'proto/test_php_namespace.proto';
import 'proto/test_empty_php_namespace.proto';
import 'proto/test_prefix.proto'; import 'proto/test_prefix.proto';
package foo; package foo;
@ -174,3 +176,8 @@ message TestPhpDoc {
message TestIncludePrefixMessage { message TestIncludePrefixMessage {
TestPrefix prefix_message = 1; TestPrefix prefix_message = 1;
} }
message TestIncludeNamespaceMessage {
TestNamespace namespace_message = 1;
TestEmptyNamespace empty_namespace_message = 2;
}

@ -0,0 +1,8 @@
syntax = "proto3";
package foo;
option php_namespace = "";
message TestEmptyNamespace {
int32 a = 1;
}

@ -0,0 +1,8 @@
syntax = "proto3";
package foo;
option php_namespace = "Php\\Test";
message TestNamespace {
int32 a = 1;
}

@ -145,6 +145,15 @@ std::string FullClassName(const DescriptorType* desc, bool is_descriptor) {
} }
classname = ClassNamePrefix(classname, desc) + classname; classname = ClassNamePrefix(classname, desc) + classname;
if (desc->file()->options().has_php_namespace()) {
const string& php_namespace = desc->file()->options().php_namespace();
if (php_namespace != "") {
return php_namespace + '\\' + classname;
} else {
return classname;
}
}
if (desc->file()->package() == "") { if (desc->file()->package() == "") {
return classname; return classname;
} else { } else {
@ -822,7 +831,14 @@ void GenerateEnumFile(const FileDescriptor* file, const EnumDescriptor* en,
std::string fullname = FilenameToClassname(filename); std::string fullname = FilenameToClassname(filename);
int lastindex = fullname.find_last_of("\\"); int lastindex = fullname.find_last_of("\\");
if (!file->package().empty()) { if (file->options().has_php_namespace()) {
const string& php_namespace = file->options().php_namespace();
if (!php_namespace.empty()) {
printer.Print(
"namespace ^name^;\n\n",
"name", php_namespace);
}
} else if (!file->package().empty()) {
printer.Print( printer.Print(
"namespace ^name^;\n\n", "namespace ^name^;\n\n",
"name", fullname.substr(0, lastindex)); "name", fullname.substr(0, lastindex));
@ -874,7 +890,14 @@ void GenerateMessageFile(const FileDescriptor* file, const Descriptor* message,
std::string fullname = FilenameToClassname(filename); std::string fullname = FilenameToClassname(filename);
int lastindex = fullname.find_last_of("\\"); int lastindex = fullname.find_last_of("\\");
if (!file->package().empty()) { if (file->options().has_php_namespace()) {
const string& php_namespace = file->options().php_namespace();
if (!php_namespace.empty()) {
printer.Print(
"namespace ^name^;\n\n",
"name", php_namespace);
}
} else if (!file->package().empty()) {
printer.Print( printer.Print(
"namespace ^name^;\n\n", "namespace ^name^;\n\n",
"name", fullname.substr(0, lastindex)); "name", fullname.substr(0, lastindex));

@ -303,23 +303,25 @@ const ::google::protobuf::uint32 TableStruct::offsets[] = {
GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FileOptions, csharp_namespace_), GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FileOptions, csharp_namespace_),
GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FileOptions, swift_prefix_), GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FileOptions, swift_prefix_),
GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FileOptions, php_class_prefix_), GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FileOptions, php_class_prefix_),
GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FileOptions, php_namespace_),
GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FileOptions, uninterpreted_option_), GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FileOptions, uninterpreted_option_),
0, 0,
1, 1,
7,
8, 8,
9, 9,
15,
2,
10, 10,
16,
2,
11, 11,
12, 12,
13, 13,
14, 14,
15,
3, 3,
4, 4,
5, 5,
6, 6,
7,
~0u, ~0u,
GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(MessageOptions, _has_bits_), GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(MessageOptions, _has_bits_),
GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(MessageOptions, _internal_metadata_), GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(MessageOptions, _internal_metadata_),
@ -486,20 +488,20 @@ static const ::google::protobuf::internal::MigrationSchema schemas[] = {
{ 124, 132, sizeof(EnumValueDescriptorProto)}, { 124, 132, sizeof(EnumValueDescriptorProto)},
{ 135, 143, sizeof(ServiceDescriptorProto)}, { 135, 143, sizeof(ServiceDescriptorProto)},
{ 146, 157, sizeof(MethodDescriptorProto)}, { 146, 157, sizeof(MethodDescriptorProto)},
{ 163, 185, sizeof(FileOptions)}, { 163, 186, sizeof(FileOptions)},
{ 202, 212, sizeof(MessageOptions)}, { 204, 214, sizeof(MessageOptions)},
{ 217, 229, sizeof(FieldOptions)}, { 219, 231, sizeof(FieldOptions)},
{ 236, 242, sizeof(OneofOptions)}, { 238, 244, sizeof(OneofOptions)},
{ 243, 251, sizeof(EnumOptions)}, { 245, 253, sizeof(EnumOptions)},
{ 254, 261, sizeof(EnumValueOptions)}, { 256, 263, sizeof(EnumValueOptions)},
{ 263, 270, sizeof(ServiceOptions)}, { 265, 272, sizeof(ServiceOptions)},
{ 272, 280, sizeof(MethodOptions)}, { 274, 282, sizeof(MethodOptions)},
{ 283, 290, sizeof(UninterpretedOption_NamePart)}, { 285, 292, sizeof(UninterpretedOption_NamePart)},
{ 292, 304, sizeof(UninterpretedOption)}, { 294, 306, sizeof(UninterpretedOption)},
{ 311, 321, sizeof(SourceCodeInfo_Location)}, { 313, 323, sizeof(SourceCodeInfo_Location)},
{ 326, 332, sizeof(SourceCodeInfo)}, { 328, 334, sizeof(SourceCodeInfo)},
{ 333, 342, sizeof(GeneratedCodeInfo_Annotation)}, { 335, 344, sizeof(GeneratedCodeInfo_Annotation)},
{ 346, 352, sizeof(GeneratedCodeInfo)}, { 348, 354, sizeof(GeneratedCodeInfo)},
}; };
static ::google::protobuf::Message const * const file_default_instances[] = { static ::google::protobuf::Message const * const file_default_instances[] = {
@ -727,7 +729,7 @@ void AddDescriptorsImpl() {
"\n\013output_type\030\003 \001(\t\022/\n\007options\030\004 \001(\0132\036.g" "\n\013output_type\030\003 \001(\t\022/\n\007options\030\004 \001(\0132\036.g"
"oogle.protobuf.MethodOptions\022\037\n\020client_s" "oogle.protobuf.MethodOptions\022\037\n\020client_s"
"treaming\030\005 \001(\010:\005false\022\037\n\020server_streamin" "treaming\030\005 \001(\010:\005false\022\037\n\020server_streamin"
"g\030\006 \001(\010:\005false\"\264\005\n\013FileOptions\022\024\n\014java_p" "g\030\006 \001(\010:\005false\"\313\005\n\013FileOptions\022\024\n\014java_p"
"ackage\030\001 \001(\t\022\034\n\024java_outer_classname\030\010 \001" "ackage\030\001 \001(\t\022\034\n\024java_outer_classname\030\010 \001"
"(\t\022\"\n\023java_multiple_files\030\n \001(\010:\005false\022)" "(\t\022\"\n\023java_multiple_files\030\n \001(\010:\005false\022)"
"\n\035java_generate_equals_and_hash\030\024 \001(\010B\002\030" "\n\035java_generate_equals_and_hash\030\024 \001(\010B\002\030"
@ -741,70 +743,71 @@ void AddDescriptorsImpl() {
"le_arenas\030\037 \001(\010:\005false\022\031\n\021objc_class_pre" "le_arenas\030\037 \001(\010:\005false\022\031\n\021objc_class_pre"
"fix\030$ \001(\t\022\030\n\020csharp_namespace\030% \001(\t\022\024\n\014s" "fix\030$ \001(\t\022\030\n\020csharp_namespace\030% \001(\t\022\024\n\014s"
"wift_prefix\030\' \001(\t\022\030\n\020php_class_prefix\030( " "wift_prefix\030\' \001(\t\022\030\n\020php_class_prefix\030( "
"\001(\t\022C\n\024uninterpreted_option\030\347\007 \003(\0132$.goo" "\001(\t\022\025\n\rphp_namespace\030) \001(\t\022C\n\024uninterpre"
"gle.protobuf.UninterpretedOption\":\n\014Opti" "ted_option\030\347\007 \003(\0132$.google.protobuf.Unin"
"mizeMode\022\t\n\005SPEED\020\001\022\r\n\tCODE_SIZE\020\002\022\020\n\014LI" "terpretedOption\":\n\014OptimizeMode\022\t\n\005SPEED"
"TE_RUNTIME\020\003*\t\010\350\007\020\200\200\200\200\002J\004\010&\020\'\"\362\001\n\016Messag" "\020\001\022\r\n\tCODE_SIZE\020\002\022\020\n\014LITE_RUNTIME\020\003*\t\010\350\007"
"eOptions\022&\n\027message_set_wire_format\030\001 \001(" "\020\200\200\200\200\002J\004\010&\020\'\"\362\001\n\016MessageOptions\022&\n\027messa"
"\010:\005false\022.\n\037no_standard_descriptor_acces" "ge_set_wire_format\030\001 \001(\010:\005false\022.\n\037no_st"
"sor\030\002 \001(\010:\005false\022\031\n\ndeprecated\030\003 \001(\010:\005fa" "andard_descriptor_accessor\030\002 \001(\010:\005false\022"
"lse\022\021\n\tmap_entry\030\007 \001(\010\022C\n\024uninterpreted_" "\031\n\ndeprecated\030\003 \001(\010:\005false\022\021\n\tmap_entry\030"
"option\030\347\007 \003(\0132$.google.protobuf.Uninterp" "\007 \001(\010\022C\n\024uninterpreted_option\030\347\007 \003(\0132$.g"
"retedOption*\t\010\350\007\020\200\200\200\200\002J\004\010\010\020\tJ\004\010\t\020\n\"\236\003\n\014F" "oogle.protobuf.UninterpretedOption*\t\010\350\007\020"
"ieldOptions\022:\n\005ctype\030\001 \001(\0162#.google.prot" "\200\200\200\200\002J\004\010\010\020\tJ\004\010\t\020\n\"\236\003\n\014FieldOptions\022:\n\005ct"
"obuf.FieldOptions.CType:\006STRING\022\016\n\006packe" "ype\030\001 \001(\0162#.google.protobuf.FieldOptions"
"d\030\002 \001(\010\022\?\n\006jstype\030\006 \001(\0162$.google.protobu" ".CType:\006STRING\022\016\n\006packed\030\002 \001(\010\022\?\n\006jstype"
"f.FieldOptions.JSType:\tJS_NORMAL\022\023\n\004lazy" "\030\006 \001(\0162$.google.protobuf.FieldOptions.JS"
"\030\005 \001(\010:\005false\022\031\n\ndeprecated\030\003 \001(\010:\005false" "Type:\tJS_NORMAL\022\023\n\004lazy\030\005 \001(\010:\005false\022\031\n\n"
"\022\023\n\004weak\030\n \001(\010:\005false\022C\n\024uninterpreted_o" "deprecated\030\003 \001(\010:\005false\022\023\n\004weak\030\n \001(\010:\005f"
"ption\030\347\007 \003(\0132$.google.protobuf.Uninterpr" "alse\022C\n\024uninterpreted_option\030\347\007 \003(\0132$.go"
"etedOption\"/\n\005CType\022\n\n\006STRING\020\000\022\010\n\004CORD\020" "ogle.protobuf.UninterpretedOption\"/\n\005CTy"
"\001\022\020\n\014STRING_PIECE\020\002\"5\n\006JSType\022\r\n\tJS_NORM" "pe\022\n\n\006STRING\020\000\022\010\n\004CORD\020\001\022\020\n\014STRING_PIECE"
"AL\020\000\022\r\n\tJS_STRING\020\001\022\r\n\tJS_NUMBER\020\002*\t\010\350\007\020" "\020\002\"5\n\006JSType\022\r\n\tJS_NORMAL\020\000\022\r\n\tJS_STRING"
"\200\200\200\200\002J\004\010\004\020\005\"^\n\014OneofOptions\022C\n\024uninterpr" "\020\001\022\r\n\tJS_NUMBER\020\002*\t\010\350\007\020\200\200\200\200\002J\004\010\004\020\005\"^\n\014On"
"eted_option\030\347\007 \003(\0132$.google.protobuf.Uni" "eofOptions\022C\n\024uninterpreted_option\030\347\007 \003("
"nterpretedOption*\t\010\350\007\020\200\200\200\200\002\"\223\001\n\013EnumOpti" "\0132$.google.protobuf.UninterpretedOption*"
"ons\022\023\n\013allow_alias\030\002 \001(\010\022\031\n\ndeprecated\030\003" "\t\010\350\007\020\200\200\200\200\002\"\223\001\n\013EnumOptions\022\023\n\013allow_alia"
" \001(\010:\005false\022C\n\024uninterpreted_option\030\347\007 \003" "s\030\002 \001(\010\022\031\n\ndeprecated\030\003 \001(\010:\005false\022C\n\024un"
"(\0132$.google.protobuf.UninterpretedOption" "interpreted_option\030\347\007 \003(\0132$.google.proto"
"*\t\010\350\007\020\200\200\200\200\002J\004\010\005\020\006\"}\n\020EnumValueOptions\022\031\n" "buf.UninterpretedOption*\t\010\350\007\020\200\200\200\200\002J\004\010\005\020\006"
"\ndeprecated\030\001 \001(\010:\005false\022C\n\024uninterprete" "\"}\n\020EnumValueOptions\022\031\n\ndeprecated\030\001 \001(\010"
"d_option\030\347\007 \003(\0132$.google.protobuf.Uninte" ":\005false\022C\n\024uninterpreted_option\030\347\007 \003(\0132$"
"rpretedOption*\t\010\350\007\020\200\200\200\200\002\"{\n\016ServiceOptio" ".google.protobuf.UninterpretedOption*\t\010\350"
"ns\022\031\n\ndeprecated\030! \001(\010:\005false\022C\n\024uninter" "\007\020\200\200\200\200\002\"{\n\016ServiceOptions\022\031\n\ndeprecated\030"
"preted_option\030\347\007 \003(\0132$.google.protobuf.U" "! \001(\010:\005false\022C\n\024uninterpreted_option\030\347\007 "
"ninterpretedOption*\t\010\350\007\020\200\200\200\200\002\"\255\002\n\rMethod" "\003(\0132$.google.protobuf.UninterpretedOptio"
"Options\022\031\n\ndeprecated\030! \001(\010:\005false\022_\n\021id" "n*\t\010\350\007\020\200\200\200\200\002\"\255\002\n\rMethodOptions\022\031\n\ndeprec"
"empotency_level\030\" \001(\0162/.google.protobuf." "ated\030! \001(\010:\005false\022_\n\021idempotency_level\030\""
"MethodOptions.IdempotencyLevel:\023IDEMPOTE" " \001(\0162/.google.protobuf.MethodOptions.Ide"
"NCY_UNKNOWN\022C\n\024uninterpreted_option\030\347\007 \003" "mpotencyLevel:\023IDEMPOTENCY_UNKNOWN\022C\n\024un"
"(\0132$.google.protobuf.UninterpretedOption" "interpreted_option\030\347\007 \003(\0132$.google.proto"
"\"P\n\020IdempotencyLevel\022\027\n\023IDEMPOTENCY_UNKN" "buf.UninterpretedOption\"P\n\020IdempotencyLe"
"OWN\020\000\022\023\n\017NO_SIDE_EFFECTS\020\001\022\016\n\nIDEMPOTENT" "vel\022\027\n\023IDEMPOTENCY_UNKNOWN\020\000\022\023\n\017NO_SIDE_"
"\020\002*\t\010\350\007\020\200\200\200\200\002\"\236\002\n\023UninterpretedOption\022;\n" "EFFECTS\020\001\022\016\n\nIDEMPOTENT\020\002*\t\010\350\007\020\200\200\200\200\002\"\236\002\n"
"\004name\030\002 \003(\0132-.google.protobuf.Uninterpre" "\023UninterpretedOption\022;\n\004name\030\002 \003(\0132-.goo"
"tedOption.NamePart\022\030\n\020identifier_value\030\003" "gle.protobuf.UninterpretedOption.NamePar"
" \001(\t\022\032\n\022positive_int_value\030\004 \001(\004\022\032\n\022nega" "t\022\030\n\020identifier_value\030\003 \001(\t\022\032\n\022positive_"
"tive_int_value\030\005 \001(\003\022\024\n\014double_value\030\006 \001" "int_value\030\004 \001(\004\022\032\n\022negative_int_value\030\005 "
"(\001\022\024\n\014string_value\030\007 \001(\014\022\027\n\017aggregate_va" "\001(\003\022\024\n\014double_value\030\006 \001(\001\022\024\n\014string_valu"
"lue\030\010 \001(\t\0323\n\010NamePart\022\021\n\tname_part\030\001 \002(\t" "e\030\007 \001(\014\022\027\n\017aggregate_value\030\010 \001(\t\0323\n\010Name"
"\022\024\n\014is_extension\030\002 \002(\010\"\325\001\n\016SourceCodeInf" "Part\022\021\n\tname_part\030\001 \002(\t\022\024\n\014is_extension\030"
"o\022:\n\010location\030\001 \003(\0132(.google.protobuf.So" "\002 \002(\010\"\325\001\n\016SourceCodeInfo\022:\n\010location\030\001 \003"
"urceCodeInfo.Location\032\206\001\n\010Location\022\020\n\004pa" "(\0132(.google.protobuf.SourceCodeInfo.Loca"
"th\030\001 \003(\005B\002\020\001\022\020\n\004span\030\002 \003(\005B\002\020\001\022\030\n\020leadin" "tion\032\206\001\n\010Location\022\020\n\004path\030\001 \003(\005B\002\020\001\022\020\n\004s"
"g_comments\030\003 \001(\t\022\031\n\021trailing_comments\030\004 " "pan\030\002 \003(\005B\002\020\001\022\030\n\020leading_comments\030\003 \001(\t\022"
"\001(\t\022!\n\031leading_detached_comments\030\006 \003(\t\"\247" "\031\n\021trailing_comments\030\004 \001(\t\022!\n\031leading_de"
"\001\n\021GeneratedCodeInfo\022A\n\nannotation\030\001 \003(\013" "tached_comments\030\006 \003(\t\"\247\001\n\021GeneratedCodeI"
"2-.google.protobuf.GeneratedCodeInfo.Ann" "nfo\022A\n\nannotation\030\001 \003(\0132-.google.protobu"
"otation\032O\n\nAnnotation\022\020\n\004path\030\001 \003(\005B\002\020\001\022" "f.GeneratedCodeInfo.Annotation\032O\n\nAnnota"
"\023\n\013source_file\030\002 \001(\t\022\r\n\005begin\030\003 \001(\005\022\013\n\003e" "tion\022\020\n\004path\030\001 \003(\005B\002\020\001\022\023\n\013source_file\030\002 "
"nd\030\004 \001(\005B\214\001\n\023com.google.protobufB\020Descri" "\001(\t\022\r\n\005begin\030\003 \001(\005\022\013\n\003end\030\004 \001(\005B\214\001\n\023com."
"ptorProtosH\001Z>github.com/golang/protobuf" "google.protobufB\020DescriptorProtosH\001Z>git"
"/protoc-gen-go/descriptor;descriptor\242\002\003G" "hub.com/golang/protobuf/protoc-gen-go/de"
"PB\252\002\032Google.Protobuf.Reflection" "scriptor;descriptor\242\002\003GPB\252\002\032Google.Proto"
"buf.Reflection"
}; };
::google::protobuf::DescriptorPool::InternalAddGeneratedFile( ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
descriptor, 5591); descriptor, 5614);
::google::protobuf::MessageFactory::InternalRegisterGeneratedFile( ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
"google/protobuf/descriptor.proto", &protobuf_RegisterTypes); "google/protobuf/descriptor.proto", &protobuf_RegisterTypes);
::google::protobuf::internal::OnShutdown(&TableStruct::Shutdown); ::google::protobuf::internal::OnShutdown(&TableStruct::Shutdown);
@ -8255,6 +8258,7 @@ const int FileOptions::kObjcClassPrefixFieldNumber;
const int FileOptions::kCsharpNamespaceFieldNumber; const int FileOptions::kCsharpNamespaceFieldNumber;
const int FileOptions::kSwiftPrefixFieldNumber; const int FileOptions::kSwiftPrefixFieldNumber;
const int FileOptions::kPhpClassPrefixFieldNumber; const int FileOptions::kPhpClassPrefixFieldNumber;
const int FileOptions::kPhpNamespaceFieldNumber;
const int FileOptions::kUninterpretedOptionFieldNumber; const int FileOptions::kUninterpretedOptionFieldNumber;
#endif // !defined(_MSC_VER) || _MSC_VER >= 1900 #endif // !defined(_MSC_VER) || _MSC_VER >= 1900
@ -8302,6 +8306,10 @@ FileOptions::FileOptions(const FileOptions& from)
if (from.has_php_class_prefix()) { if (from.has_php_class_prefix()) {
php_class_prefix_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.php_class_prefix_); php_class_prefix_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.php_class_prefix_);
} }
php_namespace_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
if (from.has_php_namespace()) {
php_namespace_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.php_namespace_);
}
::memcpy(&java_multiple_files_, &from.java_multiple_files_, ::memcpy(&java_multiple_files_, &from.java_multiple_files_,
reinterpret_cast<char*>(&optimize_for_) - reinterpret_cast<char*>(&optimize_for_) -
reinterpret_cast<char*>(&java_multiple_files_) + sizeof(optimize_for_)); reinterpret_cast<char*>(&java_multiple_files_) + sizeof(optimize_for_));
@ -8317,6 +8325,7 @@ void FileOptions::SharedCtor() {
csharp_namespace_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); csharp_namespace_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
swift_prefix_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); swift_prefix_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
php_class_prefix_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); php_class_prefix_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
php_namespace_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
::memset(&java_multiple_files_, 0, reinterpret_cast<char*>(&cc_enable_arenas_) - ::memset(&java_multiple_files_, 0, reinterpret_cast<char*>(&cc_enable_arenas_) -
reinterpret_cast<char*>(&java_multiple_files_) + sizeof(cc_enable_arenas_)); reinterpret_cast<char*>(&java_multiple_files_) + sizeof(cc_enable_arenas_));
optimize_for_ = 1; optimize_for_ = 1;
@ -8335,6 +8344,7 @@ void FileOptions::SharedDtor() {
csharp_namespace_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); csharp_namespace_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
swift_prefix_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); swift_prefix_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
php_class_prefix_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); php_class_prefix_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
php_namespace_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
} }
void FileOptions::SetCachedSize(int size) const { void FileOptions::SetCachedSize(int size) const {
@ -8364,7 +8374,7 @@ void FileOptions::Clear() {
// @@protoc_insertion_point(message_clear_start:google.protobuf.FileOptions) // @@protoc_insertion_point(message_clear_start:google.protobuf.FileOptions)
_extensions_.Clear(); _extensions_.Clear();
uninterpreted_option_.Clear(); uninterpreted_option_.Clear();
if (_has_bits_[0 / 32] & 127u) { if (_has_bits_[0 / 32] & 255u) {
if (has_java_package()) { if (has_java_package()) {
GOOGLE_DCHECK(!java_package_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited())); GOOGLE_DCHECK(!java_package_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
(*java_package_.UnsafeRawStringPointer())->clear(); (*java_package_.UnsafeRawStringPointer())->clear();
@ -8393,13 +8403,16 @@ void FileOptions::Clear() {
GOOGLE_DCHECK(!php_class_prefix_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited())); GOOGLE_DCHECK(!php_class_prefix_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
(*php_class_prefix_.UnsafeRawStringPointer())->clear(); (*php_class_prefix_.UnsafeRawStringPointer())->clear();
} }
if (has_php_namespace()) {
GOOGLE_DCHECK(!php_namespace_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
(*php_namespace_.UnsafeRawStringPointer())->clear();
}
} }
java_multiple_files_ = false;
if (_has_bits_[8 / 32] & 65280u) { if (_has_bits_[8 / 32] & 65280u) {
::memset(&java_generate_equals_and_hash_, 0, reinterpret_cast<char*>(&cc_enable_arenas_) - ::memset(&java_multiple_files_, 0, reinterpret_cast<char*>(&cc_enable_arenas_) -
reinterpret_cast<char*>(&java_generate_equals_and_hash_) + sizeof(cc_enable_arenas_)); reinterpret_cast<char*>(&java_multiple_files_) + sizeof(cc_enable_arenas_));
optimize_for_ = 1;
} }
optimize_for_ = 1;
_has_bits_.Clear(); _has_bits_.Clear();
_internal_metadata_.Clear(); _internal_metadata_.Clear();
} }
@ -8657,6 +8670,22 @@ bool FileOptions::MergePartialFromCodedStream(
break; break;
} }
// optional string php_namespace = 41;
case 41: {
if (static_cast< ::google::protobuf::uint8>(tag) ==
static_cast< ::google::protobuf::uint8>(330u)) {
DO_(::google::protobuf::internal::WireFormatLite::ReadString(
input, this->mutable_php_namespace()));
::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
this->php_namespace().data(), this->php_namespace().length(),
::google::protobuf::internal::WireFormat::PARSE,
"google.protobuf.FileOptions.php_namespace");
} else {
goto handle_unusual;
}
break;
}
// repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999; // repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
case 999: { case 999: {
if (static_cast< ::google::protobuf::uint8>(tag) == if (static_cast< ::google::protobuf::uint8>(tag) ==
@ -8724,13 +8753,13 @@ void FileOptions::SerializeWithCachedSizes(
} }
// optional .google.protobuf.FileOptions.OptimizeMode optimize_for = 9 [default = SPEED]; // optional .google.protobuf.FileOptions.OptimizeMode optimize_for = 9 [default = SPEED];
if (cached_has_bits & 0x00008000u) { if (cached_has_bits & 0x00010000u) {
::google::protobuf::internal::WireFormatLite::WriteEnum( ::google::protobuf::internal::WireFormatLite::WriteEnum(
9, this->optimize_for(), output); 9, this->optimize_for(), output);
} }
// optional bool java_multiple_files = 10 [default = false]; // optional bool java_multiple_files = 10 [default = false];
if (cached_has_bits & 0x00000080u) { if (cached_has_bits & 0x00000100u) {
::google::protobuf::internal::WireFormatLite::WriteBool(10, this->java_multiple_files(), output); ::google::protobuf::internal::WireFormatLite::WriteBool(10, this->java_multiple_files(), output);
} }
@ -8745,37 +8774,37 @@ void FileOptions::SerializeWithCachedSizes(
} }
// optional bool cc_generic_services = 16 [default = false]; // optional bool cc_generic_services = 16 [default = false];
if (cached_has_bits & 0x00000400u) { if (cached_has_bits & 0x00000800u) {
::google::protobuf::internal::WireFormatLite::WriteBool(16, this->cc_generic_services(), output); ::google::protobuf::internal::WireFormatLite::WriteBool(16, this->cc_generic_services(), output);
} }
// optional bool java_generic_services = 17 [default = false]; // optional bool java_generic_services = 17 [default = false];
if (cached_has_bits & 0x00000800u) { if (cached_has_bits & 0x00001000u) {
::google::protobuf::internal::WireFormatLite::WriteBool(17, this->java_generic_services(), output); ::google::protobuf::internal::WireFormatLite::WriteBool(17, this->java_generic_services(), output);
} }
// optional bool py_generic_services = 18 [default = false]; // optional bool py_generic_services = 18 [default = false];
if (cached_has_bits & 0x00001000u) { if (cached_has_bits & 0x00002000u) {
::google::protobuf::internal::WireFormatLite::WriteBool(18, this->py_generic_services(), output); ::google::protobuf::internal::WireFormatLite::WriteBool(18, this->py_generic_services(), output);
} }
// optional bool java_generate_equals_and_hash = 20 [deprecated = true]; // optional bool java_generate_equals_and_hash = 20 [deprecated = true];
if (cached_has_bits & 0x00000100u) { if (cached_has_bits & 0x00000200u) {
::google::protobuf::internal::WireFormatLite::WriteBool(20, this->java_generate_equals_and_hash(), output); ::google::protobuf::internal::WireFormatLite::WriteBool(20, this->java_generate_equals_and_hash(), output);
} }
// optional bool deprecated = 23 [default = false]; // optional bool deprecated = 23 [default = false];
if (cached_has_bits & 0x00002000u) { if (cached_has_bits & 0x00004000u) {
::google::protobuf::internal::WireFormatLite::WriteBool(23, this->deprecated(), output); ::google::protobuf::internal::WireFormatLite::WriteBool(23, this->deprecated(), output);
} }
// optional bool java_string_check_utf8 = 27 [default = false]; // optional bool java_string_check_utf8 = 27 [default = false];
if (cached_has_bits & 0x00000200u) { if (cached_has_bits & 0x00000400u) {
::google::protobuf::internal::WireFormatLite::WriteBool(27, this->java_string_check_utf8(), output); ::google::protobuf::internal::WireFormatLite::WriteBool(27, this->java_string_check_utf8(), output);
} }
// optional bool cc_enable_arenas = 31 [default = false]; // optional bool cc_enable_arenas = 31 [default = false];
if (cached_has_bits & 0x00004000u) { if (cached_has_bits & 0x00008000u) {
::google::protobuf::internal::WireFormatLite::WriteBool(31, this->cc_enable_arenas(), output); ::google::protobuf::internal::WireFormatLite::WriteBool(31, this->cc_enable_arenas(), output);
} }
@ -8819,6 +8848,16 @@ void FileOptions::SerializeWithCachedSizes(
40, this->php_class_prefix(), output); 40, this->php_class_prefix(), output);
} }
// optional string php_namespace = 41;
if (cached_has_bits & 0x00000080u) {
::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
this->php_namespace().data(), this->php_namespace().length(),
::google::protobuf::internal::WireFormat::SERIALIZE,
"google.protobuf.FileOptions.php_namespace");
::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
41, this->php_namespace(), output);
}
// repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999; // repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
for (unsigned int i = 0, n = this->uninterpreted_option_size(); i < n; i++) { for (unsigned int i = 0, n = this->uninterpreted_option_size(); i < n; i++) {
::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray( ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
@ -8866,13 +8905,13 @@ void FileOptions::SerializeWithCachedSizes(
} }
// optional .google.protobuf.FileOptions.OptimizeMode optimize_for = 9 [default = SPEED]; // optional .google.protobuf.FileOptions.OptimizeMode optimize_for = 9 [default = SPEED];
if (cached_has_bits & 0x00008000u) { if (cached_has_bits & 0x00010000u) {
target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray( target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
9, this->optimize_for(), target); 9, this->optimize_for(), target);
} }
// optional bool java_multiple_files = 10 [default = false]; // optional bool java_multiple_files = 10 [default = false];
if (cached_has_bits & 0x00000080u) { if (cached_has_bits & 0x00000100u) {
target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(10, this->java_multiple_files(), target); target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(10, this->java_multiple_files(), target);
} }
@ -8888,37 +8927,37 @@ void FileOptions::SerializeWithCachedSizes(
} }
// optional bool cc_generic_services = 16 [default = false]; // optional bool cc_generic_services = 16 [default = false];
if (cached_has_bits & 0x00000400u) { if (cached_has_bits & 0x00000800u) {
target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(16, this->cc_generic_services(), target); target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(16, this->cc_generic_services(), target);
} }
// optional bool java_generic_services = 17 [default = false]; // optional bool java_generic_services = 17 [default = false];
if (cached_has_bits & 0x00000800u) { if (cached_has_bits & 0x00001000u) {
target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(17, this->java_generic_services(), target); target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(17, this->java_generic_services(), target);
} }
// optional bool py_generic_services = 18 [default = false]; // optional bool py_generic_services = 18 [default = false];
if (cached_has_bits & 0x00001000u) { if (cached_has_bits & 0x00002000u) {
target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(18, this->py_generic_services(), target); target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(18, this->py_generic_services(), target);
} }
// optional bool java_generate_equals_and_hash = 20 [deprecated = true]; // optional bool java_generate_equals_and_hash = 20 [deprecated = true];
if (cached_has_bits & 0x00000100u) { if (cached_has_bits & 0x00000200u) {
target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(20, this->java_generate_equals_and_hash(), target); target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(20, this->java_generate_equals_and_hash(), target);
} }
// optional bool deprecated = 23 [default = false]; // optional bool deprecated = 23 [default = false];
if (cached_has_bits & 0x00002000u) { if (cached_has_bits & 0x00004000u) {
target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(23, this->deprecated(), target); target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(23, this->deprecated(), target);
} }
// optional bool java_string_check_utf8 = 27 [default = false]; // optional bool java_string_check_utf8 = 27 [default = false];
if (cached_has_bits & 0x00000200u) { if (cached_has_bits & 0x00000400u) {
target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(27, this->java_string_check_utf8(), target); target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(27, this->java_string_check_utf8(), target);
} }
// optional bool cc_enable_arenas = 31 [default = false]; // optional bool cc_enable_arenas = 31 [default = false];
if (cached_has_bits & 0x00004000u) { if (cached_has_bits & 0x00008000u) {
target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(31, this->cc_enable_arenas(), target); target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(31, this->cc_enable_arenas(), target);
} }
@ -8966,6 +9005,17 @@ void FileOptions::SerializeWithCachedSizes(
40, this->php_class_prefix(), target); 40, this->php_class_prefix(), target);
} }
// optional string php_namespace = 41;
if (cached_has_bits & 0x00000080u) {
::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
this->php_namespace().data(), this->php_namespace().length(),
::google::protobuf::internal::WireFormat::SERIALIZE,
"google.protobuf.FileOptions.php_namespace");
target =
::google::protobuf::internal::WireFormatLite::WriteStringToArray(
41, this->php_namespace(), target);
}
// repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999; // repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
for (unsigned int i = 0, n = this->uninterpreted_option_size(); i < n; i++) { for (unsigned int i = 0, n = this->uninterpreted_option_size(); i < n; i++) {
target = ::google::protobuf::internal::WireFormatLite:: target = ::google::protobuf::internal::WireFormatLite::
@ -9057,13 +9107,20 @@ size_t FileOptions::ByteSizeLong() const {
this->php_class_prefix()); this->php_class_prefix());
} }
// optional string php_namespace = 41;
if (has_php_namespace()) {
total_size += 2 +
::google::protobuf::internal::WireFormatLite::StringSize(
this->php_namespace());
}
}
if (_has_bits_[8 / 32] & 65280u) {
// optional bool java_multiple_files = 10 [default = false]; // optional bool java_multiple_files = 10 [default = false];
if (has_java_multiple_files()) { if (has_java_multiple_files()) {
total_size += 1 + 1; total_size += 1 + 1;
} }
}
if (_has_bits_[8 / 32] & 65280u) {
// optional bool java_generate_equals_and_hash = 20 [deprecated = true]; // optional bool java_generate_equals_and_hash = 20 [deprecated = true];
if (has_java_generate_equals_and_hash()) { if (has_java_generate_equals_and_hash()) {
total_size += 2 + 1; total_size += 2 + 1;
@ -9099,13 +9156,13 @@ size_t FileOptions::ByteSizeLong() const {
total_size += 2 + 1; total_size += 2 + 1;
} }
}
// optional .google.protobuf.FileOptions.OptimizeMode optimize_for = 9 [default = SPEED]; // optional .google.protobuf.FileOptions.OptimizeMode optimize_for = 9 [default = SPEED];
if (has_optimize_for()) { if (has_optimize_for()) {
total_size += 1 + total_size += 1 +
::google::protobuf::internal::WireFormatLite::EnumSize(this->optimize_for()); ::google::protobuf::internal::WireFormatLite::EnumSize(this->optimize_for());
} }
}
int cached_size = ::google::protobuf::internal::ToCachedSize(total_size); int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN(); GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
_cached_size_ = cached_size; _cached_size_ = cached_size;
@ -9168,37 +9225,40 @@ void FileOptions::MergeFrom(const FileOptions& from) {
php_class_prefix_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.php_class_prefix_); php_class_prefix_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.php_class_prefix_);
} }
if (cached_has_bits & 0x00000080u) { if (cached_has_bits & 0x00000080u) {
java_multiple_files_ = from.java_multiple_files_; set_has_php_namespace();
php_namespace_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.php_namespace_);
} }
_has_bits_[0] |= cached_has_bits;
} }
if (cached_has_bits & 65280u) { if (cached_has_bits & 65280u) {
if (cached_has_bits & 0x00000100u) { if (cached_has_bits & 0x00000100u) {
java_generate_equals_and_hash_ = from.java_generate_equals_and_hash_; java_multiple_files_ = from.java_multiple_files_;
} }
if (cached_has_bits & 0x00000200u) { if (cached_has_bits & 0x00000200u) {
java_string_check_utf8_ = from.java_string_check_utf8_; java_generate_equals_and_hash_ = from.java_generate_equals_and_hash_;
} }
if (cached_has_bits & 0x00000400u) { if (cached_has_bits & 0x00000400u) {
cc_generic_services_ = from.cc_generic_services_; java_string_check_utf8_ = from.java_string_check_utf8_;
} }
if (cached_has_bits & 0x00000800u) { if (cached_has_bits & 0x00000800u) {
java_generic_services_ = from.java_generic_services_; cc_generic_services_ = from.cc_generic_services_;
} }
if (cached_has_bits & 0x00001000u) { if (cached_has_bits & 0x00001000u) {
py_generic_services_ = from.py_generic_services_; java_generic_services_ = from.java_generic_services_;
} }
if (cached_has_bits & 0x00002000u) { if (cached_has_bits & 0x00002000u) {
deprecated_ = from.deprecated_; py_generic_services_ = from.py_generic_services_;
} }
if (cached_has_bits & 0x00004000u) { if (cached_has_bits & 0x00004000u) {
cc_enable_arenas_ = from.cc_enable_arenas_; deprecated_ = from.deprecated_;
} }
if (cached_has_bits & 0x00008000u) { if (cached_has_bits & 0x00008000u) {
optimize_for_ = from.optimize_for_; cc_enable_arenas_ = from.cc_enable_arenas_;
} }
_has_bits_[0] |= cached_has_bits; _has_bits_[0] |= cached_has_bits;
} }
if (cached_has_bits & 0x00010000u) {
set_optimize_for(from.optimize_for());
}
} }
void FileOptions::CopyFrom(const ::google::protobuf::Message& from) { void FileOptions::CopyFrom(const ::google::protobuf::Message& from) {
@ -9237,6 +9297,7 @@ void FileOptions::InternalSwap(FileOptions* other) {
csharp_namespace_.Swap(&other->csharp_namespace_); csharp_namespace_.Swap(&other->csharp_namespace_);
swift_prefix_.Swap(&other->swift_prefix_); swift_prefix_.Swap(&other->swift_prefix_);
php_class_prefix_.Swap(&other->php_class_prefix_); php_class_prefix_.Swap(&other->php_class_prefix_);
php_namespace_.Swap(&other->php_namespace_);
std::swap(java_multiple_files_, other->java_multiple_files_); std::swap(java_multiple_files_, other->java_multiple_files_);
std::swap(java_generate_equals_and_hash_, other->java_generate_equals_and_hash_); std::swap(java_generate_equals_and_hash_, other->java_generate_equals_and_hash_);
std::swap(java_string_check_utf8_, other->java_string_check_utf8_); std::swap(java_string_check_utf8_, other->java_string_check_utf8_);
@ -9388,13 +9449,13 @@ void FileOptions::set_allocated_java_outer_classname(::std::string* java_outer_c
// optional bool java_multiple_files = 10 [default = false]; // optional bool java_multiple_files = 10 [default = false];
bool FileOptions::has_java_multiple_files() const { bool FileOptions::has_java_multiple_files() const {
return (_has_bits_[0] & 0x00000080u) != 0; return (_has_bits_[0] & 0x00000100u) != 0;
} }
void FileOptions::set_has_java_multiple_files() { void FileOptions::set_has_java_multiple_files() {
_has_bits_[0] |= 0x00000080u; _has_bits_[0] |= 0x00000100u;
} }
void FileOptions::clear_has_java_multiple_files() { void FileOptions::clear_has_java_multiple_files() {
_has_bits_[0] &= ~0x00000080u; _has_bits_[0] &= ~0x00000100u;
} }
void FileOptions::clear_java_multiple_files() { void FileOptions::clear_java_multiple_files() {
java_multiple_files_ = false; java_multiple_files_ = false;
@ -9412,13 +9473,13 @@ void FileOptions::set_java_multiple_files(bool value) {
// optional bool java_generate_equals_and_hash = 20 [deprecated = true]; // optional bool java_generate_equals_and_hash = 20 [deprecated = true];
bool FileOptions::has_java_generate_equals_and_hash() const { bool FileOptions::has_java_generate_equals_and_hash() const {
return (_has_bits_[0] & 0x00000100u) != 0; return (_has_bits_[0] & 0x00000200u) != 0;
} }
void FileOptions::set_has_java_generate_equals_and_hash() { void FileOptions::set_has_java_generate_equals_and_hash() {
_has_bits_[0] |= 0x00000100u; _has_bits_[0] |= 0x00000200u;
} }
void FileOptions::clear_has_java_generate_equals_and_hash() { void FileOptions::clear_has_java_generate_equals_and_hash() {
_has_bits_[0] &= ~0x00000100u; _has_bits_[0] &= ~0x00000200u;
} }
void FileOptions::clear_java_generate_equals_and_hash() { void FileOptions::clear_java_generate_equals_and_hash() {
java_generate_equals_and_hash_ = false; java_generate_equals_and_hash_ = false;
@ -9436,13 +9497,13 @@ void FileOptions::set_java_generate_equals_and_hash(bool value) {
// optional bool java_string_check_utf8 = 27 [default = false]; // optional bool java_string_check_utf8 = 27 [default = false];
bool FileOptions::has_java_string_check_utf8() const { bool FileOptions::has_java_string_check_utf8() const {
return (_has_bits_[0] & 0x00000200u) != 0; return (_has_bits_[0] & 0x00000400u) != 0;
} }
void FileOptions::set_has_java_string_check_utf8() { void FileOptions::set_has_java_string_check_utf8() {
_has_bits_[0] |= 0x00000200u; _has_bits_[0] |= 0x00000400u;
} }
void FileOptions::clear_has_java_string_check_utf8() { void FileOptions::clear_has_java_string_check_utf8() {
_has_bits_[0] &= ~0x00000200u; _has_bits_[0] &= ~0x00000400u;
} }
void FileOptions::clear_java_string_check_utf8() { void FileOptions::clear_java_string_check_utf8() {
java_string_check_utf8_ = false; java_string_check_utf8_ = false;
@ -9460,13 +9521,13 @@ void FileOptions::set_java_string_check_utf8(bool value) {
// optional .google.protobuf.FileOptions.OptimizeMode optimize_for = 9 [default = SPEED]; // optional .google.protobuf.FileOptions.OptimizeMode optimize_for = 9 [default = SPEED];
bool FileOptions::has_optimize_for() const { bool FileOptions::has_optimize_for() const {
return (_has_bits_[0] & 0x00008000u) != 0; return (_has_bits_[0] & 0x00010000u) != 0;
} }
void FileOptions::set_has_optimize_for() { void FileOptions::set_has_optimize_for() {
_has_bits_[0] |= 0x00008000u; _has_bits_[0] |= 0x00010000u;
} }
void FileOptions::clear_has_optimize_for() { void FileOptions::clear_has_optimize_for() {
_has_bits_[0] &= ~0x00008000u; _has_bits_[0] &= ~0x00010000u;
} }
void FileOptions::clear_optimize_for() { void FileOptions::clear_optimize_for() {
optimize_for_ = 1; optimize_for_ = 1;
@ -9548,13 +9609,13 @@ void FileOptions::set_allocated_go_package(::std::string* go_package) {
// optional bool cc_generic_services = 16 [default = false]; // optional bool cc_generic_services = 16 [default = false];
bool FileOptions::has_cc_generic_services() const { bool FileOptions::has_cc_generic_services() const {
return (_has_bits_[0] & 0x00000400u) != 0; return (_has_bits_[0] & 0x00000800u) != 0;
} }
void FileOptions::set_has_cc_generic_services() { void FileOptions::set_has_cc_generic_services() {
_has_bits_[0] |= 0x00000400u; _has_bits_[0] |= 0x00000800u;
} }
void FileOptions::clear_has_cc_generic_services() { void FileOptions::clear_has_cc_generic_services() {
_has_bits_[0] &= ~0x00000400u; _has_bits_[0] &= ~0x00000800u;
} }
void FileOptions::clear_cc_generic_services() { void FileOptions::clear_cc_generic_services() {
cc_generic_services_ = false; cc_generic_services_ = false;
@ -9572,13 +9633,13 @@ void FileOptions::set_cc_generic_services(bool value) {
// optional bool java_generic_services = 17 [default = false]; // optional bool java_generic_services = 17 [default = false];
bool FileOptions::has_java_generic_services() const { bool FileOptions::has_java_generic_services() const {
return (_has_bits_[0] & 0x00000800u) != 0; return (_has_bits_[0] & 0x00001000u) != 0;
} }
void FileOptions::set_has_java_generic_services() { void FileOptions::set_has_java_generic_services() {
_has_bits_[0] |= 0x00000800u; _has_bits_[0] |= 0x00001000u;
} }
void FileOptions::clear_has_java_generic_services() { void FileOptions::clear_has_java_generic_services() {
_has_bits_[0] &= ~0x00000800u; _has_bits_[0] &= ~0x00001000u;
} }
void FileOptions::clear_java_generic_services() { void FileOptions::clear_java_generic_services() {
java_generic_services_ = false; java_generic_services_ = false;
@ -9596,13 +9657,13 @@ void FileOptions::set_java_generic_services(bool value) {
// optional bool py_generic_services = 18 [default = false]; // optional bool py_generic_services = 18 [default = false];
bool FileOptions::has_py_generic_services() const { bool FileOptions::has_py_generic_services() const {
return (_has_bits_[0] & 0x00001000u) != 0; return (_has_bits_[0] & 0x00002000u) != 0;
} }
void FileOptions::set_has_py_generic_services() { void FileOptions::set_has_py_generic_services() {
_has_bits_[0] |= 0x00001000u; _has_bits_[0] |= 0x00002000u;
} }
void FileOptions::clear_has_py_generic_services() { void FileOptions::clear_has_py_generic_services() {
_has_bits_[0] &= ~0x00001000u; _has_bits_[0] &= ~0x00002000u;
} }
void FileOptions::clear_py_generic_services() { void FileOptions::clear_py_generic_services() {
py_generic_services_ = false; py_generic_services_ = false;
@ -9620,13 +9681,13 @@ void FileOptions::set_py_generic_services(bool value) {
// optional bool deprecated = 23 [default = false]; // optional bool deprecated = 23 [default = false];
bool FileOptions::has_deprecated() const { bool FileOptions::has_deprecated() const {
return (_has_bits_[0] & 0x00002000u) != 0; return (_has_bits_[0] & 0x00004000u) != 0;
} }
void FileOptions::set_has_deprecated() { void FileOptions::set_has_deprecated() {
_has_bits_[0] |= 0x00002000u; _has_bits_[0] |= 0x00004000u;
} }
void FileOptions::clear_has_deprecated() { void FileOptions::clear_has_deprecated() {
_has_bits_[0] &= ~0x00002000u; _has_bits_[0] &= ~0x00004000u;
} }
void FileOptions::clear_deprecated() { void FileOptions::clear_deprecated() {
deprecated_ = false; deprecated_ = false;
@ -9644,13 +9705,13 @@ void FileOptions::set_deprecated(bool value) {
// optional bool cc_enable_arenas = 31 [default = false]; // optional bool cc_enable_arenas = 31 [default = false];
bool FileOptions::has_cc_enable_arenas() const { bool FileOptions::has_cc_enable_arenas() const {
return (_has_bits_[0] & 0x00004000u) != 0; return (_has_bits_[0] & 0x00008000u) != 0;
} }
void FileOptions::set_has_cc_enable_arenas() { void FileOptions::set_has_cc_enable_arenas() {
_has_bits_[0] |= 0x00004000u; _has_bits_[0] |= 0x00008000u;
} }
void FileOptions::clear_has_cc_enable_arenas() { void FileOptions::clear_has_cc_enable_arenas() {
_has_bits_[0] &= ~0x00004000u; _has_bits_[0] &= ~0x00008000u;
} }
void FileOptions::clear_cc_enable_arenas() { void FileOptions::clear_cc_enable_arenas() {
cc_enable_arenas_ = false; cc_enable_arenas_ = false;
@ -9918,6 +9979,69 @@ void FileOptions::set_allocated_php_class_prefix(::std::string* php_class_prefix
// @@protoc_insertion_point(field_set_allocated:google.protobuf.FileOptions.php_class_prefix) // @@protoc_insertion_point(field_set_allocated:google.protobuf.FileOptions.php_class_prefix)
} }
// optional string php_namespace = 41;
bool FileOptions::has_php_namespace() const {
return (_has_bits_[0] & 0x00000080u) != 0;
}
void FileOptions::set_has_php_namespace() {
_has_bits_[0] |= 0x00000080u;
}
void FileOptions::clear_has_php_namespace() {
_has_bits_[0] &= ~0x00000080u;
}
void FileOptions::clear_php_namespace() {
php_namespace_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
clear_has_php_namespace();
}
const ::std::string& FileOptions::php_namespace() const {
// @@protoc_insertion_point(field_get:google.protobuf.FileOptions.php_namespace)
return php_namespace_.GetNoArena();
}
void FileOptions::set_php_namespace(const ::std::string& value) {
set_has_php_namespace();
php_namespace_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
// @@protoc_insertion_point(field_set:google.protobuf.FileOptions.php_namespace)
}
#if LANG_CXX11
void FileOptions::set_php_namespace(::std::string&& value) {
set_has_php_namespace();
php_namespace_.SetNoArena(
&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
// @@protoc_insertion_point(field_set_rvalue:google.protobuf.FileOptions.php_namespace)
}
#endif
void FileOptions::set_php_namespace(const char* value) {
GOOGLE_DCHECK(value != NULL);
set_has_php_namespace();
php_namespace_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
// @@protoc_insertion_point(field_set_char:google.protobuf.FileOptions.php_namespace)
}
void FileOptions::set_php_namespace(const char* value, size_t size) {
set_has_php_namespace();
php_namespace_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
::std::string(reinterpret_cast<const char*>(value), size));
// @@protoc_insertion_point(field_set_pointer:google.protobuf.FileOptions.php_namespace)
}
::std::string* FileOptions::mutable_php_namespace() {
set_has_php_namespace();
// @@protoc_insertion_point(field_mutable:google.protobuf.FileOptions.php_namespace)
return php_namespace_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* FileOptions::release_php_namespace() {
// @@protoc_insertion_point(field_release:google.protobuf.FileOptions.php_namespace)
clear_has_php_namespace();
return php_namespace_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void FileOptions::set_allocated_php_namespace(::std::string* php_namespace) {
if (php_namespace != NULL) {
set_has_php_namespace();
} else {
clear_has_php_namespace();
}
php_namespace_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), php_namespace);
// @@protoc_insertion_point(field_set_allocated:google.protobuf.FileOptions.php_namespace)
}
// repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999; // repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
int FileOptions::uninterpreted_option_size() const { int FileOptions::uninterpreted_option_size() const {
return uninterpreted_option_.size(); return uninterpreted_option_.size();

@ -2233,6 +2233,21 @@ class LIBPROTOBUF_EXPORT FileOptions : public ::google::protobuf::Message /* @@p
::std::string* release_php_class_prefix(); ::std::string* release_php_class_prefix();
void set_allocated_php_class_prefix(::std::string* php_class_prefix); void set_allocated_php_class_prefix(::std::string* php_class_prefix);
// optional string php_namespace = 41;
bool has_php_namespace() const;
void clear_php_namespace();
static const int kPhpNamespaceFieldNumber = 41;
const ::std::string& php_namespace() const;
void set_php_namespace(const ::std::string& value);
#if LANG_CXX11
void set_php_namespace(::std::string&& value);
#endif
void set_php_namespace(const char* value);
void set_php_namespace(const char* value, size_t size);
::std::string* mutable_php_namespace();
::std::string* release_php_namespace();
void set_allocated_php_namespace(::std::string* php_namespace);
// optional bool java_multiple_files = 10 [default = false]; // optional bool java_multiple_files = 10 [default = false];
bool has_java_multiple_files() const; bool has_java_multiple_files() const;
void clear_java_multiple_files(); void clear_java_multiple_files();
@ -2331,6 +2346,8 @@ class LIBPROTOBUF_EXPORT FileOptions : public ::google::protobuf::Message /* @@p
void clear_has_swift_prefix(); void clear_has_swift_prefix();
void set_has_php_class_prefix(); void set_has_php_class_prefix();
void clear_has_php_class_prefix(); void clear_has_php_class_prefix();
void set_has_php_namespace();
void clear_has_php_namespace();
::google::protobuf::internal::ExtensionSet _extensions_; ::google::protobuf::internal::ExtensionSet _extensions_;
@ -2345,6 +2362,7 @@ class LIBPROTOBUF_EXPORT FileOptions : public ::google::protobuf::Message /* @@p
::google::protobuf::internal::ArenaStringPtr csharp_namespace_; ::google::protobuf::internal::ArenaStringPtr csharp_namespace_;
::google::protobuf::internal::ArenaStringPtr swift_prefix_; ::google::protobuf::internal::ArenaStringPtr swift_prefix_;
::google::protobuf::internal::ArenaStringPtr php_class_prefix_; ::google::protobuf::internal::ArenaStringPtr php_class_prefix_;
::google::protobuf::internal::ArenaStringPtr php_namespace_;
bool java_multiple_files_; bool java_multiple_files_;
bool java_generate_equals_and_hash_; bool java_generate_equals_and_hash_;
bool java_string_check_utf8_; bool java_string_check_utf8_;
@ -6554,13 +6572,13 @@ inline void FileOptions::set_allocated_java_outer_classname(::std::string* java_
// optional bool java_multiple_files = 10 [default = false]; // optional bool java_multiple_files = 10 [default = false];
inline bool FileOptions::has_java_multiple_files() const { inline bool FileOptions::has_java_multiple_files() const {
return (_has_bits_[0] & 0x00000080u) != 0; return (_has_bits_[0] & 0x00000100u) != 0;
} }
inline void FileOptions::set_has_java_multiple_files() { inline void FileOptions::set_has_java_multiple_files() {
_has_bits_[0] |= 0x00000080u; _has_bits_[0] |= 0x00000100u;
} }
inline void FileOptions::clear_has_java_multiple_files() { inline void FileOptions::clear_has_java_multiple_files() {
_has_bits_[0] &= ~0x00000080u; _has_bits_[0] &= ~0x00000100u;
} }
inline void FileOptions::clear_java_multiple_files() { inline void FileOptions::clear_java_multiple_files() {
java_multiple_files_ = false; java_multiple_files_ = false;
@ -6578,13 +6596,13 @@ inline void FileOptions::set_java_multiple_files(bool value) {
// optional bool java_generate_equals_and_hash = 20 [deprecated = true]; // optional bool java_generate_equals_and_hash = 20 [deprecated = true];
inline bool FileOptions::has_java_generate_equals_and_hash() const { inline bool FileOptions::has_java_generate_equals_and_hash() const {
return (_has_bits_[0] & 0x00000100u) != 0; return (_has_bits_[0] & 0x00000200u) != 0;
} }
inline void FileOptions::set_has_java_generate_equals_and_hash() { inline void FileOptions::set_has_java_generate_equals_and_hash() {
_has_bits_[0] |= 0x00000100u; _has_bits_[0] |= 0x00000200u;
} }
inline void FileOptions::clear_has_java_generate_equals_and_hash() { inline void FileOptions::clear_has_java_generate_equals_and_hash() {
_has_bits_[0] &= ~0x00000100u; _has_bits_[0] &= ~0x00000200u;
} }
inline void FileOptions::clear_java_generate_equals_and_hash() { inline void FileOptions::clear_java_generate_equals_and_hash() {
java_generate_equals_and_hash_ = false; java_generate_equals_and_hash_ = false;
@ -6602,13 +6620,13 @@ inline void FileOptions::set_java_generate_equals_and_hash(bool value) {
// optional bool java_string_check_utf8 = 27 [default = false]; // optional bool java_string_check_utf8 = 27 [default = false];
inline bool FileOptions::has_java_string_check_utf8() const { inline bool FileOptions::has_java_string_check_utf8() const {
return (_has_bits_[0] & 0x00000200u) != 0; return (_has_bits_[0] & 0x00000400u) != 0;
} }
inline void FileOptions::set_has_java_string_check_utf8() { inline void FileOptions::set_has_java_string_check_utf8() {
_has_bits_[0] |= 0x00000200u; _has_bits_[0] |= 0x00000400u;
} }
inline void FileOptions::clear_has_java_string_check_utf8() { inline void FileOptions::clear_has_java_string_check_utf8() {
_has_bits_[0] &= ~0x00000200u; _has_bits_[0] &= ~0x00000400u;
} }
inline void FileOptions::clear_java_string_check_utf8() { inline void FileOptions::clear_java_string_check_utf8() {
java_string_check_utf8_ = false; java_string_check_utf8_ = false;
@ -6626,13 +6644,13 @@ inline void FileOptions::set_java_string_check_utf8(bool value) {
// optional .google.protobuf.FileOptions.OptimizeMode optimize_for = 9 [default = SPEED]; // optional .google.protobuf.FileOptions.OptimizeMode optimize_for = 9 [default = SPEED];
inline bool FileOptions::has_optimize_for() const { inline bool FileOptions::has_optimize_for() const {
return (_has_bits_[0] & 0x00008000u) != 0; return (_has_bits_[0] & 0x00010000u) != 0;
} }
inline void FileOptions::set_has_optimize_for() { inline void FileOptions::set_has_optimize_for() {
_has_bits_[0] |= 0x00008000u; _has_bits_[0] |= 0x00010000u;
} }
inline void FileOptions::clear_has_optimize_for() { inline void FileOptions::clear_has_optimize_for() {
_has_bits_[0] &= ~0x00008000u; _has_bits_[0] &= ~0x00010000u;
} }
inline void FileOptions::clear_optimize_for() { inline void FileOptions::clear_optimize_for() {
optimize_for_ = 1; optimize_for_ = 1;
@ -6714,13 +6732,13 @@ inline void FileOptions::set_allocated_go_package(::std::string* go_package) {
// optional bool cc_generic_services = 16 [default = false]; // optional bool cc_generic_services = 16 [default = false];
inline bool FileOptions::has_cc_generic_services() const { inline bool FileOptions::has_cc_generic_services() const {
return (_has_bits_[0] & 0x00000400u) != 0; return (_has_bits_[0] & 0x00000800u) != 0;
} }
inline void FileOptions::set_has_cc_generic_services() { inline void FileOptions::set_has_cc_generic_services() {
_has_bits_[0] |= 0x00000400u; _has_bits_[0] |= 0x00000800u;
} }
inline void FileOptions::clear_has_cc_generic_services() { inline void FileOptions::clear_has_cc_generic_services() {
_has_bits_[0] &= ~0x00000400u; _has_bits_[0] &= ~0x00000800u;
} }
inline void FileOptions::clear_cc_generic_services() { inline void FileOptions::clear_cc_generic_services() {
cc_generic_services_ = false; cc_generic_services_ = false;
@ -6738,13 +6756,13 @@ inline void FileOptions::set_cc_generic_services(bool value) {
// optional bool java_generic_services = 17 [default = false]; // optional bool java_generic_services = 17 [default = false];
inline bool FileOptions::has_java_generic_services() const { inline bool FileOptions::has_java_generic_services() const {
return (_has_bits_[0] & 0x00000800u) != 0; return (_has_bits_[0] & 0x00001000u) != 0;
} }
inline void FileOptions::set_has_java_generic_services() { inline void FileOptions::set_has_java_generic_services() {
_has_bits_[0] |= 0x00000800u; _has_bits_[0] |= 0x00001000u;
} }
inline void FileOptions::clear_has_java_generic_services() { inline void FileOptions::clear_has_java_generic_services() {
_has_bits_[0] &= ~0x00000800u; _has_bits_[0] &= ~0x00001000u;
} }
inline void FileOptions::clear_java_generic_services() { inline void FileOptions::clear_java_generic_services() {
java_generic_services_ = false; java_generic_services_ = false;
@ -6762,13 +6780,13 @@ inline void FileOptions::set_java_generic_services(bool value) {
// optional bool py_generic_services = 18 [default = false]; // optional bool py_generic_services = 18 [default = false];
inline bool FileOptions::has_py_generic_services() const { inline bool FileOptions::has_py_generic_services() const {
return (_has_bits_[0] & 0x00001000u) != 0; return (_has_bits_[0] & 0x00002000u) != 0;
} }
inline void FileOptions::set_has_py_generic_services() { inline void FileOptions::set_has_py_generic_services() {
_has_bits_[0] |= 0x00001000u; _has_bits_[0] |= 0x00002000u;
} }
inline void FileOptions::clear_has_py_generic_services() { inline void FileOptions::clear_has_py_generic_services() {
_has_bits_[0] &= ~0x00001000u; _has_bits_[0] &= ~0x00002000u;
} }
inline void FileOptions::clear_py_generic_services() { inline void FileOptions::clear_py_generic_services() {
py_generic_services_ = false; py_generic_services_ = false;
@ -6786,13 +6804,13 @@ inline void FileOptions::set_py_generic_services(bool value) {
// optional bool deprecated = 23 [default = false]; // optional bool deprecated = 23 [default = false];
inline bool FileOptions::has_deprecated() const { inline bool FileOptions::has_deprecated() const {
return (_has_bits_[0] & 0x00002000u) != 0; return (_has_bits_[0] & 0x00004000u) != 0;
} }
inline void FileOptions::set_has_deprecated() { inline void FileOptions::set_has_deprecated() {
_has_bits_[0] |= 0x00002000u; _has_bits_[0] |= 0x00004000u;
} }
inline void FileOptions::clear_has_deprecated() { inline void FileOptions::clear_has_deprecated() {
_has_bits_[0] &= ~0x00002000u; _has_bits_[0] &= ~0x00004000u;
} }
inline void FileOptions::clear_deprecated() { inline void FileOptions::clear_deprecated() {
deprecated_ = false; deprecated_ = false;
@ -6810,13 +6828,13 @@ inline void FileOptions::set_deprecated(bool value) {
// optional bool cc_enable_arenas = 31 [default = false]; // optional bool cc_enable_arenas = 31 [default = false];
inline bool FileOptions::has_cc_enable_arenas() const { inline bool FileOptions::has_cc_enable_arenas() const {
return (_has_bits_[0] & 0x00004000u) != 0; return (_has_bits_[0] & 0x00008000u) != 0;
} }
inline void FileOptions::set_has_cc_enable_arenas() { inline void FileOptions::set_has_cc_enable_arenas() {
_has_bits_[0] |= 0x00004000u; _has_bits_[0] |= 0x00008000u;
} }
inline void FileOptions::clear_has_cc_enable_arenas() { inline void FileOptions::clear_has_cc_enable_arenas() {
_has_bits_[0] &= ~0x00004000u; _has_bits_[0] &= ~0x00008000u;
} }
inline void FileOptions::clear_cc_enable_arenas() { inline void FileOptions::clear_cc_enable_arenas() {
cc_enable_arenas_ = false; cc_enable_arenas_ = false;
@ -7084,6 +7102,69 @@ inline void FileOptions::set_allocated_php_class_prefix(::std::string* php_class
// @@protoc_insertion_point(field_set_allocated:google.protobuf.FileOptions.php_class_prefix) // @@protoc_insertion_point(field_set_allocated:google.protobuf.FileOptions.php_class_prefix)
} }
// optional string php_namespace = 41;
inline bool FileOptions::has_php_namespace() const {
return (_has_bits_[0] & 0x00000080u) != 0;
}
inline void FileOptions::set_has_php_namespace() {
_has_bits_[0] |= 0x00000080u;
}
inline void FileOptions::clear_has_php_namespace() {
_has_bits_[0] &= ~0x00000080u;
}
inline void FileOptions::clear_php_namespace() {
php_namespace_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
clear_has_php_namespace();
}
inline const ::std::string& FileOptions::php_namespace() const {
// @@protoc_insertion_point(field_get:google.protobuf.FileOptions.php_namespace)
return php_namespace_.GetNoArena();
}
inline void FileOptions::set_php_namespace(const ::std::string& value) {
set_has_php_namespace();
php_namespace_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
// @@protoc_insertion_point(field_set:google.protobuf.FileOptions.php_namespace)
}
#if LANG_CXX11
inline void FileOptions::set_php_namespace(::std::string&& value) {
set_has_php_namespace();
php_namespace_.SetNoArena(
&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
// @@protoc_insertion_point(field_set_rvalue:google.protobuf.FileOptions.php_namespace)
}
#endif
inline void FileOptions::set_php_namespace(const char* value) {
GOOGLE_DCHECK(value != NULL);
set_has_php_namespace();
php_namespace_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
// @@protoc_insertion_point(field_set_char:google.protobuf.FileOptions.php_namespace)
}
inline void FileOptions::set_php_namespace(const char* value, size_t size) {
set_has_php_namespace();
php_namespace_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
::std::string(reinterpret_cast<const char*>(value), size));
// @@protoc_insertion_point(field_set_pointer:google.protobuf.FileOptions.php_namespace)
}
inline ::std::string* FileOptions::mutable_php_namespace() {
set_has_php_namespace();
// @@protoc_insertion_point(field_mutable:google.protobuf.FileOptions.php_namespace)
return php_namespace_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* FileOptions::release_php_namespace() {
// @@protoc_insertion_point(field_release:google.protobuf.FileOptions.php_namespace)
clear_has_php_namespace();
return php_namespace_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void FileOptions::set_allocated_php_namespace(::std::string* php_namespace) {
if (php_namespace != NULL) {
set_has_php_namespace();
} else {
clear_has_php_namespace();
}
php_namespace_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), php_namespace);
// @@protoc_insertion_point(field_set_allocated:google.protobuf.FileOptions.php_namespace)
}
// repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999; // repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
inline int FileOptions::uninterpreted_option_size() const { inline int FileOptions::uninterpreted_option_size() const {
return uninterpreted_option_.size(); return uninterpreted_option_.size();

@ -380,6 +380,11 @@ message FileOptions {
// from this .proto. Default is empty. // from this .proto. Default is empty.
optional string php_class_prefix = 40; optional string php_class_prefix = 40;
// Use this option to change the namespace of php generated classes. Default
// is empty. When this option is empty, the package name will be used for
// determining the namespace.
optional string php_namespace = 41;
// The parser stores options it doesn't recognize here. See above. // The parser stores options it doesn't recognize here. See above.
repeated UninterpretedOption uninterpreted_option = 999; repeated UninterpretedOption uninterpreted_option = 999;

@ -346,7 +346,7 @@ generate_php_test_proto() {
# Generate test file # Generate test file
rm -rf generated rm -rf generated
mkdir generated mkdir generated
../../src/protoc --php_out=generated proto/test.proto proto/test_include.proto proto/test_no_namespace.proto proto/test_prefix.proto ../../src/protoc --php_out=generated proto/test.proto proto/test_include.proto proto/test_no_namespace.proto proto/test_prefix.proto proto/test_php_namespace.proto proto/test_empty_php_namespace.proto
pushd ../../src pushd ../../src
./protoc --php_out=../php/tests/generated google/protobuf/empty.proto ./protoc --php_out=../php/tests/generated google/protobuf/empty.proto
./protoc --php_out=../php/tests/generated -I../php/tests -I. ../php/tests/proto/test_import_descriptor_proto.proto ./protoc --php_out=../php/tests/generated -I../php/tests -I. ../php/tests/proto/test_import_descriptor_proto.proto

Loading…
Cancel
Save