Migrate upb from edition strings to enums

PiperOrigin-RevId: 563487615
pull/13902/head
Mike Kruskal 1 year ago committed by Copybara-Service
parent 04de6db34b
commit bad2f5c90f
  1. 6
      upb/upb/reflection/common.h
  2. 21
      upb/upb/reflection/file_def.c
  3. 2
      upb/upb/reflection/file_def.h
  4. 167
      upb/upb/reflection/stage0/google/protobuf/descriptor.upb.c
  5. 1914
      upb/upb/reflection/stage0/google/protobuf/descriptor.upb.h
  6. 8
      upb/upb/util/def_to_proto.c
  7. 5
      upb/upb/util/def_to_proto_test.cc
  8. 6
      upb/upbc/stage0/google/protobuf/compiler/plugin.upb.c
  9. 118
      upb/upbc/stage0/google/protobuf/compiler/plugin.upb.h

@ -47,7 +47,11 @@
#include "google/protobuf/descriptor.upb.h"
// end:github_only
typedef enum { kUpb_Syntax_Proto2 = 2, kUpb_Syntax_Proto3 = 3 } upb_Syntax;
typedef enum {
kUpb_Syntax_Proto2 = 2,
kUpb_Syntax_Proto3 = 3,
kUpb_Syntax_Editions = 99
} upb_Syntax;
// Forward declarations for circular references.
typedef struct upb_DefPool upb_DefPool;

@ -44,7 +44,7 @@ struct upb_FileDef {
const UPB_DESC(FileOptions) * opts;
const char* name;
const char* package;
const char* edition;
UPB_DESC(Edition) edition;
const upb_FileDef** deps;
const int32_t* public_deps;
@ -81,8 +81,8 @@ const char* upb_FileDef_Package(const upb_FileDef* f) {
return f->package ? f->package : "";
}
const char* upb_FileDef_Edition(const upb_FileDef* f) {
return f->edition ? f->edition : "";
UPB_DESC(Edition) upb_FileDef_Edition(const upb_FileDef* f) {
return f->edition;
}
const char* _upb_FileDef_RawPackage(const upb_FileDef* f) { return f->package; }
@ -247,17 +247,8 @@ void _upb_FileDef_Create(upb_DefBuilder* ctx,
file->package = NULL;
}
upb_StringView edition = UPB_DESC(FileDescriptorProto_edition)(file_proto);
if (edition.size == 0) {
file->edition = NULL;
} else {
// TODO(b/267770604): How should we validate this?
file->edition = strviewdup(ctx, edition);
if (strlen(file->edition) != edition.size) {
_upb_DefBuilder_Errf(ctx, "Edition name contained embedded NULL");
}
}
// TODO(b/267770604): How should we validate this?
file->edition = UPB_DESC(FileDescriptorProto_edition_enum)(file_proto);
if (UPB_DESC(FileDescriptorProto_has_syntax)(file_proto)) {
upb_StringView syntax = UPB_DESC(FileDescriptorProto_syntax)(file_proto);
@ -266,6 +257,8 @@ void _upb_FileDef_Create(upb_DefBuilder* ctx,
file->syntax = kUpb_Syntax_Proto2;
} else if (streql_view(syntax, "proto3")) {
file->syntax = kUpb_Syntax_Proto3;
} else if (streql_view(syntax, "editions")) {
file->syntax = kUpb_Syntax_Editions;
} else {
_upb_DefBuilder_Errf(ctx, "Invalid syntax '" UPB_STRINGVIEW_FORMAT "'",
UPB_STRINGVIEW_ARGS(syntax));

@ -48,7 +48,7 @@ bool upb_FileDef_HasOptions(const upb_FileDef* f);
UPB_API const char* upb_FileDef_Name(const upb_FileDef* f);
const UPB_DESC(FileOptions) * upb_FileDef_Options(const upb_FileDef* f);
const char* upb_FileDef_Package(const upb_FileDef* f);
const char* upb_FileDef_Edition(const upb_FileDef* f);
UPB_DESC(Edition) upb_FileDef_Edition(const upb_FileDef* f);
UPB_API const upb_DefPool* upb_FileDef_Pool(const upb_FileDef* f);
const upb_FileDef* upb_FileDef_PublicDependency(const upb_FileDef* f, int i);

@ -21,7 +21,7 @@ const upb_MiniTable* google_protobuf_FileDescriptorSet_msg_init() {
const upb_MiniTable* google_protobuf_FileDescriptorProto_msg_init() {
static upb_MiniTable* mini_table = NULL;
static const char* mini_descriptor = "$11EGGGG33<<11";
static const char* mini_descriptor = "$11EGGGG33<<114";
if (mini_table) return mini_table;
mini_table =
upb_MiniTable_Build(mini_descriptor, strlen(mini_descriptor),
@ -32,6 +32,7 @@ const upb_MiniTable* google_protobuf_FileDescriptorProto_msg_init() {
upb_MiniTable_SetSubMessage(mini_table, (upb_MiniTableField*)upb_MiniTable_FindFieldByNumber(mini_table, 7), google_protobuf_FieldDescriptorProto_msg_init());
upb_MiniTable_SetSubMessage(mini_table, (upb_MiniTableField*)upb_MiniTable_FindFieldByNumber(mini_table, 8), google_protobuf_FileOptions_msg_init());
upb_MiniTable_SetSubMessage(mini_table, (upb_MiniTableField*)upb_MiniTable_FindFieldByNumber(mini_table, 9), google_protobuf_SourceCodeInfo_msg_init());
upb_MiniTable_SetSubEnum(mini_table, (upb_MiniTableField*)upb_MiniTable_FindFieldByNumber(mini_table, 14), google_protobuf_Edition_enum_init());
return mini_table;
}
@ -76,12 +77,25 @@ const upb_MiniTable* google_protobuf_DescriptorProto_ReservedRange_msg_init() {
const upb_MiniTable* google_protobuf_ExtensionRangeOptions_msg_init() {
static upb_MiniTable* mini_table = NULL;
static const char* mini_descriptor = "$Pf~G";
static const char* mini_descriptor = "$PaG4n`3t|G";
if (mini_table) return mini_table;
mini_table =
upb_MiniTable_Build(mini_descriptor, strlen(mini_descriptor),
upb_BootstrapArena(), NULL);
upb_MiniTable_SetSubMessage(mini_table, (upb_MiniTableField*)upb_MiniTable_FindFieldByNumber(mini_table, 999), google_protobuf_UninterpretedOption_msg_init());
upb_MiniTable_SetSubMessage(mini_table, (upb_MiniTableField*)upb_MiniTable_FindFieldByNumber(mini_table, 2), google_protobuf_ExtensionRangeOptions_Declaration_msg_init());
upb_MiniTable_SetSubMessage(mini_table, (upb_MiniTableField*)upb_MiniTable_FindFieldByNumber(mini_table, 50), google_protobuf_FeatureSet_msg_init());
upb_MiniTable_SetSubEnum(mini_table, (upb_MiniTableField*)upb_MiniTable_FindFieldByNumber(mini_table, 3), google_protobuf_ExtensionRangeOptions_VerificationState_enum_init());
return mini_table;
}
const upb_MiniTable* google_protobuf_ExtensionRangeOptions_Declaration_msg_init() {
static upb_MiniTable* mini_table = NULL;
static const char* mini_descriptor = "$(11a//";
if (mini_table) return mini_table;
mini_table =
upb_MiniTable_Build(mini_descriptor, strlen(mini_descriptor),
upb_BootstrapArena(), NULL);
return mini_table;
}
@ -168,92 +182,114 @@ const upb_MiniTable* google_protobuf_MethodDescriptorProto_msg_init() {
const upb_MiniTable* google_protobuf_FileOptions_msg_init() {
static upb_MiniTable* mini_table = NULL;
static const char* mini_descriptor = "$P1f14/1d///a/b/c/c/d11a111/a11y|G";
static const char* mini_descriptor = "$P1f14/1d///a/b/c/c/d11a111/a11d3t|G";
if (mini_table) return mini_table;
mini_table =
upb_MiniTable_Build(mini_descriptor, strlen(mini_descriptor),
upb_BootstrapArena(), NULL);
upb_MiniTable_SetSubEnum(mini_table, (upb_MiniTableField*)upb_MiniTable_FindFieldByNumber(mini_table, 9), google_protobuf_FileOptions_OptimizeMode_enum_init());
upb_MiniTable_SetSubMessage(mini_table, (upb_MiniTableField*)upb_MiniTable_FindFieldByNumber(mini_table, 50), google_protobuf_FeatureSet_msg_init());
upb_MiniTable_SetSubMessage(mini_table, (upb_MiniTableField*)upb_MiniTable_FindFieldByNumber(mini_table, 999), google_protobuf_UninterpretedOption_msg_init());
return mini_table;
}
const upb_MiniTable* google_protobuf_MessageOptions_msg_init() {
static upb_MiniTable* mini_table = NULL;
static const char* mini_descriptor = "$P///c/c/{}G";
static const char* mini_descriptor = "$P///c/c/3z}G";
if (mini_table) return mini_table;
mini_table =
upb_MiniTable_Build(mini_descriptor, strlen(mini_descriptor),
upb_BootstrapArena(), NULL);
upb_MiniTable_SetSubMessage(mini_table, (upb_MiniTableField*)upb_MiniTable_FindFieldByNumber(mini_table, 12), google_protobuf_FeatureSet_msg_init());
upb_MiniTable_SetSubMessage(mini_table, (upb_MiniTableField*)upb_MiniTable_FindFieldByNumber(mini_table, 999), google_protobuf_UninterpretedOption_msg_init());
return mini_table;
}
const upb_MiniTable* google_protobuf_FieldOptions_msg_init() {
static upb_MiniTable* mini_table = NULL;
static const char* mini_descriptor = "$P4//a/4c/d//v}G";
static const char* mini_descriptor = "$P4//a/4c/d//4aHG3q}G";
if (mini_table) return mini_table;
mini_table =
upb_MiniTable_Build(mini_descriptor, strlen(mini_descriptor),
upb_BootstrapArena(), NULL);
upb_MiniTable_SetSubEnum(mini_table, (upb_MiniTableField*)upb_MiniTable_FindFieldByNumber(mini_table, 1), google_protobuf_FieldOptions_CType_enum_init());
upb_MiniTable_SetSubEnum(mini_table, (upb_MiniTableField*)upb_MiniTable_FindFieldByNumber(mini_table, 6), google_protobuf_FieldOptions_JSType_enum_init());
upb_MiniTable_SetSubEnum(mini_table, (upb_MiniTableField*)upb_MiniTable_FindFieldByNumber(mini_table, 17), google_protobuf_FieldOptions_OptionRetention_enum_init());
upb_MiniTable_SetSubEnum(mini_table, (upb_MiniTableField*)upb_MiniTable_FindFieldByNumber(mini_table, 19), google_protobuf_FieldOptions_OptionTargetType_enum_init());
upb_MiniTable_SetSubMessage(mini_table, (upb_MiniTableField*)upb_MiniTable_FindFieldByNumber(mini_table, 20), google_protobuf_FieldOptions_EditionDefault_msg_init());
upb_MiniTable_SetSubMessage(mini_table, (upb_MiniTableField*)upb_MiniTable_FindFieldByNumber(mini_table, 21), google_protobuf_FeatureSet_msg_init());
upb_MiniTable_SetSubMessage(mini_table, (upb_MiniTableField*)upb_MiniTable_FindFieldByNumber(mini_table, 999), google_protobuf_UninterpretedOption_msg_init());
return mini_table;
}
const upb_MiniTable* google_protobuf_FieldOptions_EditionDefault_msg_init() {
static upb_MiniTable* mini_table = NULL;
static const char* mini_descriptor = "$114";
if (mini_table) return mini_table;
mini_table =
upb_MiniTable_Build(mini_descriptor, strlen(mini_descriptor),
upb_BootstrapArena(), NULL);
upb_MiniTable_SetSubEnum(mini_table, (upb_MiniTableField*)upb_MiniTable_FindFieldByNumber(mini_table, 3), google_protobuf_Edition_enum_init());
return mini_table;
}
const upb_MiniTable* google_protobuf_OneofOptions_msg_init() {
static upb_MiniTable* mini_table = NULL;
static const char* mini_descriptor = "$Pf~G";
static const char* mini_descriptor = "$P3e~G";
if (mini_table) return mini_table;
mini_table =
upb_MiniTable_Build(mini_descriptor, strlen(mini_descriptor),
upb_BootstrapArena(), NULL);
upb_MiniTable_SetSubMessage(mini_table, (upb_MiniTableField*)upb_MiniTable_FindFieldByNumber(mini_table, 1), google_protobuf_FeatureSet_msg_init());
upb_MiniTable_SetSubMessage(mini_table, (upb_MiniTableField*)upb_MiniTable_FindFieldByNumber(mini_table, 999), google_protobuf_UninterpretedOption_msg_init());
return mini_table;
}
const upb_MiniTable* google_protobuf_EnumOptions_msg_init() {
static upb_MiniTable* mini_table = NULL;
static const char* mini_descriptor = "$Pa//b/`~G";
static const char* mini_descriptor = "$Pa//b/3_~G";
if (mini_table) return mini_table;
mini_table =
upb_MiniTable_Build(mini_descriptor, strlen(mini_descriptor),
upb_BootstrapArena(), NULL);
upb_MiniTable_SetSubMessage(mini_table, (upb_MiniTableField*)upb_MiniTable_FindFieldByNumber(mini_table, 7), google_protobuf_FeatureSet_msg_init());
upb_MiniTable_SetSubMessage(mini_table, (upb_MiniTableField*)upb_MiniTable_FindFieldByNumber(mini_table, 999), google_protobuf_UninterpretedOption_msg_init());
return mini_table;
}
const upb_MiniTable* google_protobuf_EnumValueOptions_msg_init() {
static upb_MiniTable* mini_table = NULL;
static const char* mini_descriptor = "$P/e~G";
static const char* mini_descriptor = "$P/3/c~G";
if (mini_table) return mini_table;
mini_table =
upb_MiniTable_Build(mini_descriptor, strlen(mini_descriptor),
upb_BootstrapArena(), NULL);
upb_MiniTable_SetSubMessage(mini_table, (upb_MiniTableField*)upb_MiniTable_FindFieldByNumber(mini_table, 2), google_protobuf_FeatureSet_msg_init());
upb_MiniTable_SetSubMessage(mini_table, (upb_MiniTableField*)upb_MiniTable_FindFieldByNumber(mini_table, 999), google_protobuf_UninterpretedOption_msg_init());
return mini_table;
}
const upb_MiniTable* google_protobuf_ServiceOptions_msg_init() {
static upb_MiniTable* mini_table = NULL;
static const char* mini_descriptor = "$P``/e}G";
static const char* mini_descriptor = "$P``/3d}G";
if (mini_table) return mini_table;
mini_table =
upb_MiniTable_Build(mini_descriptor, strlen(mini_descriptor),
upb_BootstrapArena(), NULL);
upb_MiniTable_SetSubMessage(mini_table, (upb_MiniTableField*)upb_MiniTable_FindFieldByNumber(mini_table, 34), google_protobuf_FeatureSet_msg_init());
upb_MiniTable_SetSubMessage(mini_table, (upb_MiniTableField*)upb_MiniTable_FindFieldByNumber(mini_table, 999), google_protobuf_UninterpretedOption_msg_init());
return mini_table;
}
const upb_MiniTable* google_protobuf_MethodOptions_msg_init() {
static upb_MiniTable* mini_table = NULL;
static const char* mini_descriptor = "$P``/4d}G";
static const char* mini_descriptor = "$P``/43c}G";
if (mini_table) return mini_table;
mini_table =
upb_MiniTable_Build(mini_descriptor, strlen(mini_descriptor),
upb_BootstrapArena(), NULL);
upb_MiniTable_SetSubEnum(mini_table, (upb_MiniTableField*)upb_MiniTable_FindFieldByNumber(mini_table, 34), google_protobuf_MethodOptions_IdempotencyLevel_enum_init());
upb_MiniTable_SetSubMessage(mini_table, (upb_MiniTableField*)upb_MiniTable_FindFieldByNumber(mini_table, 35), google_protobuf_FeatureSet_msg_init());
upb_MiniTable_SetSubMessage(mini_table, (upb_MiniTableField*)upb_MiniTable_FindFieldByNumber(mini_table, 999), google_protobuf_UninterpretedOption_msg_init());
return mini_table;
}
@ -279,6 +315,46 @@ const upb_MiniTable* google_protobuf_UninterpretedOption_NamePart_msg_init() {
return mini_table;
}
const upb_MiniTable* google_protobuf_FeatureSet_msg_init() {
static upb_MiniTable* mini_table = NULL;
static const char* mini_descriptor = "$P444a44";
if (mini_table) return mini_table;
mini_table =
upb_MiniTable_Build(mini_descriptor, strlen(mini_descriptor),
upb_BootstrapArena(), NULL);
upb_MiniTable_SetSubEnum(mini_table, (upb_MiniTableField*)upb_MiniTable_FindFieldByNumber(mini_table, 1), google_protobuf_FeatureSet_FieldPresence_enum_init());
upb_MiniTable_SetSubEnum(mini_table, (upb_MiniTableField*)upb_MiniTable_FindFieldByNumber(mini_table, 2), google_protobuf_FeatureSet_EnumType_enum_init());
upb_MiniTable_SetSubEnum(mini_table, (upb_MiniTableField*)upb_MiniTable_FindFieldByNumber(mini_table, 3), google_protobuf_FeatureSet_RepeatedFieldEncoding_enum_init());
upb_MiniTable_SetSubEnum(mini_table, (upb_MiniTableField*)upb_MiniTable_FindFieldByNumber(mini_table, 5), google_protobuf_FeatureSet_MessageEncoding_enum_init());
upb_MiniTable_SetSubEnum(mini_table, (upb_MiniTableField*)upb_MiniTable_FindFieldByNumber(mini_table, 6), google_protobuf_FeatureSet_JsonFormat_enum_init());
return mini_table;
}
const upb_MiniTable* google_protobuf_FeatureSetDefaults_msg_init() {
static upb_MiniTable* mini_table = NULL;
static const char* mini_descriptor = "$G1144";
if (mini_table) return mini_table;
mini_table =
upb_MiniTable_Build(mini_descriptor, strlen(mini_descriptor),
upb_BootstrapArena(), NULL);
upb_MiniTable_SetSubMessage(mini_table, (upb_MiniTableField*)upb_MiniTable_FindFieldByNumber(mini_table, 1), google_protobuf_FeatureSetDefaults_FeatureSetEditionDefault_msg_init());
upb_MiniTable_SetSubEnum(mini_table, (upb_MiniTableField*)upb_MiniTable_FindFieldByNumber(mini_table, 4), google_protobuf_Edition_enum_init());
upb_MiniTable_SetSubEnum(mini_table, (upb_MiniTableField*)upb_MiniTable_FindFieldByNumber(mini_table, 5), google_protobuf_Edition_enum_init());
return mini_table;
}
const upb_MiniTable* google_protobuf_FeatureSetDefaults_FeatureSetEditionDefault_msg_init() {
static upb_MiniTable* mini_table = NULL;
static const char* mini_descriptor = "$134";
if (mini_table) return mini_table;
mini_table =
upb_MiniTable_Build(mini_descriptor, strlen(mini_descriptor),
upb_BootstrapArena(), NULL);
upb_MiniTable_SetSubEnum(mini_table, (upb_MiniTableField*)upb_MiniTable_FindFieldByNumber(mini_table, 3), google_protobuf_Edition_enum_init());
upb_MiniTable_SetSubMessage(mini_table, (upb_MiniTableField*)upb_MiniTable_FindFieldByNumber(mini_table, 2), google_protobuf_FeatureSet_msg_init());
return mini_table;
}
const upb_MiniTable* google_protobuf_SourceCodeInfo_msg_init() {
static upb_MiniTable* mini_table = NULL;
static const char* mini_descriptor = "$G";
@ -322,6 +398,76 @@ const upb_MiniTable* google_protobuf_GeneratedCodeInfo_Annotation_msg_init() {
return mini_table;
}
const upb_MiniTableEnum* google_protobuf_Edition_enum_init() {
static const upb_MiniTableEnum* mini_table = NULL;
static const char* mini_descriptor = "!)b~!ot_b)";
if (mini_table) return mini_table;
mini_table =
upb_MiniTableEnum_Build(mini_descriptor, strlen(mini_descriptor),
upb_BootstrapArena(), NULL);
return mini_table;
}
const upb_MiniTableEnum* google_protobuf_ExtensionRangeOptions_VerificationState_enum_init() {
static const upb_MiniTableEnum* mini_table = NULL;
static const char* mini_descriptor = "!$";
if (mini_table) return mini_table;
mini_table =
upb_MiniTableEnum_Build(mini_descriptor, strlen(mini_descriptor),
upb_BootstrapArena(), NULL);
return mini_table;
}
const upb_MiniTableEnum* google_protobuf_FeatureSet_EnumType_enum_init() {
static const upb_MiniTableEnum* mini_table = NULL;
static const char* mini_descriptor = "!)";
if (mini_table) return mini_table;
mini_table =
upb_MiniTableEnum_Build(mini_descriptor, strlen(mini_descriptor),
upb_BootstrapArena(), NULL);
return mini_table;
}
const upb_MiniTableEnum* google_protobuf_FeatureSet_FieldPresence_enum_init() {
static const upb_MiniTableEnum* mini_table = NULL;
static const char* mini_descriptor = "!1";
if (mini_table) return mini_table;
mini_table =
upb_MiniTableEnum_Build(mini_descriptor, strlen(mini_descriptor),
upb_BootstrapArena(), NULL);
return mini_table;
}
const upb_MiniTableEnum* google_protobuf_FeatureSet_JsonFormat_enum_init() {
static const upb_MiniTableEnum* mini_table = NULL;
static const char* mini_descriptor = "!)";
if (mini_table) return mini_table;
mini_table =
upb_MiniTableEnum_Build(mini_descriptor, strlen(mini_descriptor),
upb_BootstrapArena(), NULL);
return mini_table;
}
const upb_MiniTableEnum* google_protobuf_FeatureSet_MessageEncoding_enum_init() {
static const upb_MiniTableEnum* mini_table = NULL;
static const char* mini_descriptor = "!)";
if (mini_table) return mini_table;
mini_table =
upb_MiniTableEnum_Build(mini_descriptor, strlen(mini_descriptor),
upb_BootstrapArena(), NULL);
return mini_table;
}
const upb_MiniTableEnum* google_protobuf_FeatureSet_RepeatedFieldEncoding_enum_init() {
static const upb_MiniTableEnum* mini_table = NULL;
static const char* mini_descriptor = "!)";
if (mini_table) return mini_table;
mini_table =
upb_MiniTableEnum_Build(mini_descriptor, strlen(mini_descriptor),
upb_BootstrapArena(), NULL);
return mini_table;
}
const upb_MiniTableEnum* google_protobuf_FieldDescriptorProto_Label_enum_init() {
static const upb_MiniTableEnum* mini_table = NULL;
static const char* mini_descriptor = "!0";
@ -411,3 +557,4 @@ const upb_MiniTableEnum* google_protobuf_MethodOptions_IdempotencyLevel_enum_ini
upb_BootstrapArena(), NULL);
return mini_table;
}

File diff suppressed because it is too large Load Diff

@ -528,12 +528,8 @@ static google_protobuf_FileDescriptorProto* filedef_toproto(upb_ToProto_Context*
}
}
const char* edition = upb_FileDef_Edition(f);
if (edition != NULL) {
size_t n = strlen(edition);
if (n != 0) {
google_protobuf_FileDescriptorProto_set_edition(proto, strviewdup(ctx, edition));
}
if (upb_FileDef_Syntax(f) == kUpb_Syntax_Editions) {
google_protobuf_FileDescriptorProto_set_edition_enum(proto, upb_FileDef_Edition(f));
}
if (upb_FileDef_Syntax(f) == kUpb_Syntax_Proto3) {

@ -174,11 +174,6 @@ TEST(FuzzTest, FileNameEmbeddedNull) {
RoundTripDescriptor(ParseTextProtoOrDie(R"pb(file { name: "\000" })pb"));
}
TEST(FuzzTest, EditionEmbeddedNull) {
RoundTripDescriptor(
ParseTextProtoOrDie(R"pb(file { name: "n" edition: "\000" })pb"));
}
TEST(FuzzTest, DuplicateOneofIndex) {
RoundTripDescriptor(ParseTextProtoOrDie(
R"pb(file {

@ -21,12 +21,13 @@ const upb_MiniTable* google_protobuf_compiler_Version_msg_init() {
const upb_MiniTable* google_protobuf_compiler_CodeGeneratorRequest_msg_init() {
static upb_MiniTable* mini_table = NULL;
static const char* mini_descriptor = "$E13kG";
static const char* mini_descriptor = "$E13kGaG";
if (mini_table) return mini_table;
mini_table =
upb_MiniTable_Build(mini_descriptor, strlen(mini_descriptor),
upb_BootstrapArena(), NULL);
upb_MiniTable_SetSubMessage(mini_table, (upb_MiniTableField*)upb_MiniTable_FindFieldByNumber(mini_table, 15), google_protobuf_FileDescriptorProto_msg_init());
upb_MiniTable_SetSubMessage(mini_table, (upb_MiniTableField*)upb_MiniTable_FindFieldByNumber(mini_table, 17), google_protobuf_FileDescriptorProto_msg_init());
upb_MiniTable_SetSubMessage(mini_table, (upb_MiniTableField*)upb_MiniTable_FindFieldByNumber(mini_table, 3), google_protobuf_compiler_Version_msg_init());
return mini_table;
}
@ -55,10 +56,11 @@ const upb_MiniTable* google_protobuf_compiler_CodeGeneratorResponse_File_msg_ini
const upb_MiniTableEnum* google_protobuf_compiler_CodeGeneratorResponse_Feature_enum_init() {
static const upb_MiniTableEnum* mini_table = NULL;
static const char* mini_descriptor = "!$";
static const char* mini_descriptor = "!)";
if (mini_table) return mini_table;
mini_table =
upb_MiniTableEnum_Build(mini_descriptor, strlen(mini_descriptor),
upb_BootstrapArena(), NULL);
return mini_table;
}

@ -10,7 +10,6 @@
#define GOOGLE_PROTOBUF_COMPILER_PLUGIN_PROTO_UPB_H_
#include "upb/generated_code_support.h"
// Must be last.
#include "upb/port/def.inc"
@ -33,7 +32,8 @@ extern const upb_MiniTable* google_protobuf_GeneratedCodeInfo_msg_init();
typedef enum {
google_protobuf_compiler_CodeGeneratorResponse_FEATURE_NONE = 0,
google_protobuf_compiler_CodeGeneratorResponse_FEATURE_PROTO3_OPTIONAL = 1
google_protobuf_compiler_CodeGeneratorResponse_FEATURE_PROTO3_OPTIONAL = 1,
google_protobuf_compiler_CodeGeneratorResponse_FEATURE_SUPPORTS_EDITIONS = 2
} google_protobuf_compiler_CodeGeneratorResponse_Feature;
@ -202,6 +202,23 @@ UPB_INLINE upb_StringView const* google_protobuf_compiler_CodeGeneratorRequest_f
return NULL;
}
}
UPB_INLINE const upb_Array* _google_protobuf_compiler_CodeGeneratorRequest_file_to_generate_upb_array(const google_protobuf_compiler_CodeGeneratorRequest* msg, size_t* size) {
const upb_MiniTableField field = *upb_MiniTable_FindFieldByNumber(google_protobuf_compiler_CodeGeneratorRequest_msg_init(), 1);
const upb_Array* arr = upb_Message_GetArray(msg, &field);
if (size) {
*size = arr ? arr->size : 0;
}
return arr;
}
UPB_INLINE upb_Array* _google_protobuf_compiler_CodeGeneratorRequest_file_to_generate_mutable_upb_array(const google_protobuf_compiler_CodeGeneratorRequest* msg, size_t* size, upb_Arena* arena) {
const upb_MiniTableField field = *upb_MiniTable_FindFieldByNumber(google_protobuf_compiler_CodeGeneratorRequest_msg_init(), 1);
upb_Array* arr = upb_Message_GetOrCreateMutableArray(
(upb_Message*)msg, &field, arena);
if (size) {
*size = arr ? arr->size : 0;
}
return arr;
}
UPB_INLINE bool google_protobuf_compiler_CodeGeneratorRequest_has_file_to_generate(const google_protobuf_compiler_CodeGeneratorRequest* msg) {
size_t size;
google_protobuf_compiler_CodeGeneratorRequest_file_to_generate(msg, &size);
@ -252,11 +269,65 @@ UPB_INLINE const struct google_protobuf_FileDescriptorProto* const* google_proto
return NULL;
}
}
UPB_INLINE const upb_Array* _google_protobuf_compiler_CodeGeneratorRequest_proto_file_upb_array(const google_protobuf_compiler_CodeGeneratorRequest* msg, size_t* size) {
const upb_MiniTableField field = *upb_MiniTable_FindFieldByNumber(google_protobuf_compiler_CodeGeneratorRequest_msg_init(), 15);
const upb_Array* arr = upb_Message_GetArray(msg, &field);
if (size) {
*size = arr ? arr->size : 0;
}
return arr;
}
UPB_INLINE upb_Array* _google_protobuf_compiler_CodeGeneratorRequest_proto_file_mutable_upb_array(const google_protobuf_compiler_CodeGeneratorRequest* msg, size_t* size, upb_Arena* arena) {
const upb_MiniTableField field = *upb_MiniTable_FindFieldByNumber(google_protobuf_compiler_CodeGeneratorRequest_msg_init(), 15);
upb_Array* arr = upb_Message_GetOrCreateMutableArray(
(upb_Message*)msg, &field, arena);
if (size) {
*size = arr ? arr->size : 0;
}
return arr;
}
UPB_INLINE bool google_protobuf_compiler_CodeGeneratorRequest_has_proto_file(const google_protobuf_compiler_CodeGeneratorRequest* msg) {
size_t size;
google_protobuf_compiler_CodeGeneratorRequest_proto_file(msg, &size);
return size != 0;
}
UPB_INLINE void google_protobuf_compiler_CodeGeneratorRequest_clear_source_file_descriptors(google_protobuf_compiler_CodeGeneratorRequest* msg) {
const upb_MiniTableField field = *upb_MiniTable_FindFieldByNumber(google_protobuf_compiler_CodeGeneratorRequest_msg_init(), 17);
_upb_Message_ClearNonExtensionField(msg, &field);
}
UPB_INLINE const struct google_protobuf_FileDescriptorProto* const* google_protobuf_compiler_CodeGeneratorRequest_source_file_descriptors(const google_protobuf_compiler_CodeGeneratorRequest* msg, size_t* size) {
const upb_MiniTableField field = *upb_MiniTable_FindFieldByNumber(google_protobuf_compiler_CodeGeneratorRequest_msg_init(), 17);
const upb_Array* arr = upb_Message_GetArray(msg, &field);
if (arr) {
if (size) *size = arr->size;
return (const struct google_protobuf_FileDescriptorProto* const*)_upb_array_constptr(arr);
} else {
if (size) *size = 0;
return NULL;
}
}
UPB_INLINE const upb_Array* _google_protobuf_compiler_CodeGeneratorRequest_source_file_descriptors_upb_array(const google_protobuf_compiler_CodeGeneratorRequest* msg, size_t* size) {
const upb_MiniTableField field = *upb_MiniTable_FindFieldByNumber(google_protobuf_compiler_CodeGeneratorRequest_msg_init(), 17);
const upb_Array* arr = upb_Message_GetArray(msg, &field);
if (size) {
*size = arr ? arr->size : 0;
}
return arr;
}
UPB_INLINE upb_Array* _google_protobuf_compiler_CodeGeneratorRequest_source_file_descriptors_mutable_upb_array(const google_protobuf_compiler_CodeGeneratorRequest* msg, size_t* size, upb_Arena* arena) {
const upb_MiniTableField field = *upb_MiniTable_FindFieldByNumber(google_protobuf_compiler_CodeGeneratorRequest_msg_init(), 17);
upb_Array* arr = upb_Message_GetOrCreateMutableArray(
(upb_Message*)msg, &field, arena);
if (size) {
*size = arr ? arr->size : 0;
}
return arr;
}
UPB_INLINE bool google_protobuf_compiler_CodeGeneratorRequest_has_source_file_descriptors(const google_protobuf_compiler_CodeGeneratorRequest* msg) {
size_t size;
google_protobuf_compiler_CodeGeneratorRequest_source_file_descriptors(msg, &size);
return size != 0;
}
UPB_INLINE upb_StringView* google_protobuf_compiler_CodeGeneratorRequest_mutable_file_to_generate(google_protobuf_compiler_CodeGeneratorRequest* msg, size_t* size) {
upb_MiniTableField field = *upb_MiniTable_FindFieldByNumber(google_protobuf_compiler_CodeGeneratorRequest_msg_init(), 1);
@ -324,6 +395,32 @@ UPB_INLINE struct google_protobuf_FileDescriptorProto* google_protobuf_compiler_
_upb_Array_Set(arr, arr->size - 1, &sub, sizeof(sub));
return sub;
}
UPB_INLINE struct google_protobuf_FileDescriptorProto** google_protobuf_compiler_CodeGeneratorRequest_mutable_source_file_descriptors(google_protobuf_compiler_CodeGeneratorRequest* msg, size_t* size) {
upb_MiniTableField field = *upb_MiniTable_FindFieldByNumber(google_protobuf_compiler_CodeGeneratorRequest_msg_init(), 17);
upb_Array* arr = upb_Message_GetMutableArray(msg, &field);
if (arr) {
if (size) *size = arr->size;
return (struct google_protobuf_FileDescriptorProto**)_upb_array_ptr(arr);
} else {
if (size) *size = 0;
return NULL;
}
}
UPB_INLINE struct google_protobuf_FileDescriptorProto** google_protobuf_compiler_CodeGeneratorRequest_resize_source_file_descriptors(google_protobuf_compiler_CodeGeneratorRequest* msg, size_t size, upb_Arena* arena) {
upb_MiniTableField field = *upb_MiniTable_FindFieldByNumber(google_protobuf_compiler_CodeGeneratorRequest_msg_init(), 17);
return (struct google_protobuf_FileDescriptorProto**)upb_Message_ResizeArrayUninitialized(msg, &field, size, arena);
}
UPB_INLINE struct google_protobuf_FileDescriptorProto* google_protobuf_compiler_CodeGeneratorRequest_add_source_file_descriptors(google_protobuf_compiler_CodeGeneratorRequest* msg, upb_Arena* arena) {
upb_MiniTableField field = *upb_MiniTable_FindFieldByNumber(google_protobuf_compiler_CodeGeneratorRequest_msg_init(), 17);
upb_Array* arr = upb_Message_GetOrCreateMutableArray(msg, &field, arena);
if (!arr || !_upb_Array_ResizeUninitialized(arr, arr->size + 1, arena)) {
return NULL;
}
struct google_protobuf_FileDescriptorProto* sub = (struct google_protobuf_FileDescriptorProto*)_upb_Message_New(google_protobuf_FileDescriptorProto_msg_init(), arena);
if (!arr || !sub) return NULL;
_upb_Array_Set(arr, arr->size - 1, &sub, sizeof(sub));
return sub;
}
/* google.protobuf.compiler.CodeGeneratorResponse */
@ -405,6 +502,23 @@ UPB_INLINE const google_protobuf_compiler_CodeGeneratorResponse_File* const* goo
return NULL;
}
}
UPB_INLINE const upb_Array* _google_protobuf_compiler_CodeGeneratorResponse_file_upb_array(const google_protobuf_compiler_CodeGeneratorResponse* msg, size_t* size) {
const upb_MiniTableField field = *upb_MiniTable_FindFieldByNumber(google_protobuf_compiler_CodeGeneratorResponse_msg_init(), 15);
const upb_Array* arr = upb_Message_GetArray(msg, &field);
if (size) {
*size = arr ? arr->size : 0;
}
return arr;
}
UPB_INLINE upb_Array* _google_protobuf_compiler_CodeGeneratorResponse_file_mutable_upb_array(const google_protobuf_compiler_CodeGeneratorResponse* msg, size_t* size, upb_Arena* arena) {
const upb_MiniTableField field = *upb_MiniTable_FindFieldByNumber(google_protobuf_compiler_CodeGeneratorResponse_msg_init(), 15);
upb_Array* arr = upb_Message_GetOrCreateMutableArray(
(upb_Message*)msg, &field, arena);
if (size) {
*size = arr ? arr->size : 0;
}
return arr;
}
UPB_INLINE bool google_protobuf_compiler_CodeGeneratorResponse_has_file(const google_protobuf_compiler_CodeGeneratorResponse* msg) {
size_t size;
google_protobuf_compiler_CodeGeneratorResponse_file(msg, &size);

Loading…
Cancel
Save