Added UPB_DESC() macro for all bootstrap references to proto symbols.

We have previously been using Copybara to rewrite these names, but for bootstrapping we will want to be able to sometimes use OSS names inside google3.

PiperOrigin-RevId: 500294974
pull/13171/head
Joshua Haberman 2 years ago committed by Joshua Haberman
parent 955a57f80f
commit 204b9eeffa
  1. 10
      upb/port/def.inc
  2. 2
      upb/port/undef.inc
  3. 22
      upb/reflection/def_builder_internal.h
  4. 15
      upb/reflection/def_pool.c
  5. 7
      upb/reflection/def_pool.h
  6. 26
      upb/reflection/enum_def.c
  7. 2
      upb/reflection/enum_def.h
  8. 7
      upb/reflection/enum_def_internal.h
  9. 6
      upb/reflection/enum_reserved_range.c
  10. 2
      upb/reflection/enum_reserved_range_internal.h
  11. 15
      upb/reflection/enum_value_def.c
  12. 4
      upb/reflection/enum_value_def.h
  13. 2
      upb/reflection/enum_value_def_internal.h
  14. 20
      upb/reflection/extension_range.c
  15. 4
      upb/reflection/extension_range.h
  16. 2
      upb/reflection/extension_range_internal.h
  17. 84
      upb/reflection/field_def.c
  18. 2
      upb/reflection/field_def.h
  19. 2
      upb/reflection/field_def_internal.h
  20. 50
      upb/reflection/file_def.c
  21. 2
      upb/reflection/file_def.h
  22. 2
      upb/reflection/file_def_internal.h
  23. 57
      upb/reflection/message_def.c
  24. 4
      upb/reflection/message_def.h
  25. 2
      upb/reflection/message_def_internal.h
  26. 7
      upb/reflection/message_reserved_range.c
  27. 2
      upb/reflection/message_reserved_range_internal.h
  28. 20
      upb/reflection/method_def.c
  29. 2
      upb/reflection/method_def.h
  30. 2
      upb/reflection/method_def_internal.h
  31. 10
      upb/reflection/oneof_def.c
  32. 2
      upb/reflection/oneof_def.h
  33. 2
      upb/reflection/oneof_def_internal.h
  34. 15
      upb/reflection/service_def.c
  35. 3
      upb/reflection/service_def.h
  36. 2
      upb/reflection/service_def_internal.h

@ -302,3 +302,13 @@ void __asan_unpoison_memory_region(void const volatile *addr, size_t size);
#else
#define UPB_DEPRECATED
#endif
// begin:google_only
// #define UPB_IS_GOOGLE3
// end:google_only
#if defined(UPB_IS_GOOGLE3)
#define UPB_DESC(sym) proto2_##sym
#else
#define UPB_DESC(sym) google_protobuf_##sym
#endif

@ -64,3 +64,5 @@
#undef UPB_TREAT_PROTO2_ENUMS_LIKE_PROTO3
#undef UPB_DEPRECATED
#undef UPB_GNUC_MIN
#undef UPB_DESC
#undef UPB_IS_GOOGLE3

@ -37,17 +37,17 @@
// We want to copy the options verbatim into the destination options proto.
// We use serialize+parse as our deep copy.
#define UPB_DEF_SET_OPTIONS(target, desc_type, options_type, proto) \
if (google_protobuf_##desc_type##_has_options(proto)) { \
size_t size; \
char* pb = google_protobuf_##options_type##_serialize( \
google_protobuf_##desc_type##_options(proto), ctx->tmp_arena, &size); \
if (!pb) _upb_DefBuilder_OomErr(ctx); \
target = \
google_protobuf_##options_type##_parse(pb, size, _upb_DefBuilder_Arena(ctx)); \
if (!target) _upb_DefBuilder_OomErr(ctx); \
} else { \
target = (const google_protobuf_##options_type*)kUpbDefOptDefault; \
#define UPB_DEF_SET_OPTIONS(target, desc_type, options_type, proto) \
if (UPB_DESC(desc_type##_has_options)(proto)) { \
size_t size; \
char* pb = UPB_DESC(options_type##_serialize)( \
UPB_DESC(desc_type##_options)(proto), ctx->tmp_arena, &size); \
if (!pb) _upb_DefBuilder_OomErr(ctx); \
target = \
UPB_DESC(options_type##_parse)(pb, size, _upb_DefBuilder_Arena(ctx)); \
if (!target) _upb_DefBuilder_OomErr(ctx); \
} else { \
target = (const UPB_DESC(options_type)*)kUpbDefOptDefault; \
}
#ifdef __cplusplus

@ -281,9 +281,9 @@ static void remove_filedef(upb_DefPool* s, upb_FileDef* file) {
}
static const upb_FileDef* _upb_DefPool_AddFile(
upb_DefPool* s, const google_protobuf_FileDescriptorProto* file_proto,
upb_DefPool* s, const UPB_DESC(FileDescriptorProto) * file_proto,
const upb_MiniTableFile* layout, upb_Status* status) {
const upb_StringView name = google_protobuf_FileDescriptorProto_name(file_proto);
const upb_StringView name = UPB_DESC(FileDescriptorProto_name)(file_proto);
if (name.size == 0) {
upb_Status_SetErrorFormat(status,
@ -335,9 +335,10 @@ static const upb_FileDef* _upb_DefPool_AddFile(
return ctx.file;
}
const upb_FileDef* upb_DefPool_AddFile(
upb_DefPool* s, const google_protobuf_FileDescriptorProto* file_proto,
upb_Status* status) {
const upb_FileDef* upb_DefPool_AddFile(upb_DefPool* s,
const UPB_DESC(FileDescriptorProto) *
file_proto,
upb_Status* status) {
return _upb_DefPool_AddFile(s, file_proto, NULL, status);
}
@ -346,7 +347,7 @@ bool _upb_DefPool_LoadDefInitEx(upb_DefPool* s, const _upb_DefPool_Init* init,
/* Since this function should never fail (it would indicate a bug in upb) we
* print errors to stderr instead of returning error status to the user. */
_upb_DefPool_Init** deps = init->deps;
google_protobuf_FileDescriptorProto* file;
UPB_DESC(FileDescriptorProto) * file;
upb_Arena* arena;
upb_Status status;
@ -362,7 +363,7 @@ bool _upb_DefPool_LoadDefInitEx(upb_DefPool* s, const _upb_DefPool_Init* init,
if (!_upb_DefPool_LoadDefInitEx(s, *deps, rebuild_minitable)) goto err;
}
file = google_protobuf_FileDescriptorProto_parse_ex(
file = UPB_DESC(FileDescriptorProto_parse_ex)(
init->descriptor.data, init->descriptor.size, NULL,
kUpb_DecodeOption_AliasString, arena);
s->bytes_loaded += init->descriptor.size;

@ -87,9 +87,10 @@ const upb_ServiceDef* upb_DefPool_FindServiceByNameWithSize(
const upb_FileDef* upb_DefPool_FindFileContainingSymbol(const upb_DefPool* s,
const char* name);
const upb_FileDef* upb_DefPool_AddFile(
upb_DefPool* s, const google_protobuf_FileDescriptorProto* file_proto,
upb_Status* status);
const upb_FileDef* upb_DefPool_AddFile(upb_DefPool* s,
const UPB_DESC(FileDescriptorProto) *
file_proto,
upb_Status* status);
const upb_ExtensionRegistry* upb_DefPool_ExtensionRegistry(
const upb_DefPool* s);

@ -41,7 +41,7 @@
#include "upb/port/def.inc"
struct upb_EnumDef {
const google_protobuf_EnumOptions* opts;
const UPB_DESC(EnumOptions) * opts;
const upb_MiniTableEnum* layout; // Only for proto2.
const upb_FileDef* file;
const upb_MessageDef* containing_type; // Could be merged with "file".
@ -89,7 +89,7 @@ bool _upb_EnumDef_Insert(upb_EnumDef* e, upb_EnumValueDef* v, upb_Arena* a) {
return true;
}
const google_protobuf_EnumOptions* upb_EnumDef_Options(const upb_EnumDef* e) {
const UPB_DESC(EnumOptions) * upb_EnumDef_Options(const upb_EnumDef* e) {
return e->opts;
}
@ -237,10 +237,10 @@ static upb_StringView* _upb_EnumReservedNames_New(
}
static void create_enumdef(upb_DefBuilder* ctx, const char* prefix,
const google_protobuf_EnumDescriptorProto* enum_proto,
const UPB_DESC(EnumDescriptorProto) * enum_proto,
upb_EnumDef* e) {
const google_protobuf_EnumValueDescriptorProto* const* values;
const google_protobuf_EnumDescriptorProto_EnumReservedRange* const* res_ranges;
const UPB_DESC(EnumValueDescriptorProto)* const* values;
const UPB_DESC(EnumDescriptorProto_EnumReservedRange)* const* res_ranges;
const upb_StringView* res_names;
upb_StringView name;
size_t n_value, n_res_range, n_res_name;
@ -248,14 +248,14 @@ static void create_enumdef(upb_DefBuilder* ctx, const char* prefix,
// Must happen before _upb_DefBuilder_Add()
e->file = _upb_DefBuilder_File(ctx);
name = google_protobuf_EnumDescriptorProto_name(enum_proto);
name = UPB_DESC(EnumDescriptorProto_name)(enum_proto);
_upb_DefBuilder_CheckIdentNotFull(ctx, name);
e->full_name = _upb_DefBuilder_MakeFullName(ctx, prefix, name);
_upb_DefBuilder_Add(ctx, e->full_name,
_upb_DefType_Pack(e, UPB_DEFTYPE_ENUM));
values = google_protobuf_EnumDescriptorProto_value(enum_proto, &n_value);
values = UPB_DESC(EnumDescriptorProto_value)(enum_proto, &n_value);
bool ok = upb_strtable_init(&e->ntoi, n_value, ctx->arena);
if (!ok) _upb_DefBuilder_OomErr(ctx);
@ -274,11 +274,12 @@ static void create_enumdef(upb_DefBuilder* ctx, const char* prefix,
}
res_ranges =
google_protobuf_EnumDescriptorProto_reserved_range(enum_proto, &n_res_range);
UPB_DESC(EnumDescriptorProto_reserved_range)(enum_proto, &n_res_range);
e->res_range_count = n_res_range;
e->res_ranges = _upb_EnumReservedRanges_New(ctx, n_res_range, res_ranges, e);
res_names = google_protobuf_EnumDescriptorProto_reserved_name(enum_proto, &n_res_name);
res_names =
UPB_DESC(EnumDescriptorProto_reserved_name)(enum_proto, &n_res_name);
e->res_name_count = n_res_name;
e->res_names = _upb_EnumReservedNames_New(ctx, n_res_name, res_names);
@ -298,9 +299,10 @@ static void create_enumdef(upb_DefBuilder* ctx, const char* prefix,
}
}
upb_EnumDef* _upb_EnumDefs_New(upb_DefBuilder* ctx, int n,
const google_protobuf_EnumDescriptorProto* const* protos,
const upb_MessageDef* containing_type) {
upb_EnumDef* _upb_EnumDefs_New(
upb_DefBuilder* ctx, int n,
const UPB_DESC(EnumDescriptorProto) * const* protos,
const upb_MessageDef* containing_type) {
_upb_DefType_CheckPadding(sizeof(upb_EnumDef));
// If a containing type is defined then get the full name from that.

@ -59,7 +59,7 @@ bool upb_EnumDef_MiniDescriptorEncode(const upb_EnumDef* e, upb_Arena* a,
upb_StringView* out);
const char* upb_EnumDef_Name(const upb_EnumDef* e);
const google_protobuf_EnumOptions* upb_EnumDef_Options(const upb_EnumDef* e);
const UPB_DESC(EnumOptions) * upb_EnumDef_Options(const upb_EnumDef* e);
upb_StringView upb_EnumDef_ReservedName(const upb_EnumDef* e, int i);
int upb_EnumDef_ReservedNameCount(const upb_EnumDef* e);

@ -42,9 +42,10 @@ bool _upb_EnumDef_Insert(upb_EnumDef* e, upb_EnumValueDef* v, upb_Arena* a);
const upb_MiniTableEnum* _upb_EnumDef_MiniTable(const upb_EnumDef* e);
// Allocate and initialize an array of |n| enum defs.
upb_EnumDef* _upb_EnumDefs_New(upb_DefBuilder* ctx, int n,
const google_protobuf_EnumDescriptorProto* const* protos,
const upb_MessageDef* containing_type);
upb_EnumDef* _upb_EnumDefs_New(
upb_DefBuilder* ctx, int n,
const UPB_DESC(EnumDescriptorProto) * const* protos,
const upb_MessageDef* containing_type);
#ifdef __cplusplus
} /* extern "C" */

@ -54,16 +54,16 @@ int32_t upb_EnumReservedRange_End(const upb_EnumReservedRange* r) {
upb_EnumReservedRange* _upb_EnumReservedRanges_New(
upb_DefBuilder* ctx, int n,
const google_protobuf_EnumDescriptorProto_EnumReservedRange* const* protos,
const UPB_DESC(EnumDescriptorProto_EnumReservedRange) * const* protos,
const upb_EnumDef* e) {
upb_EnumReservedRange* r =
_upb_DefBuilder_Alloc(ctx, sizeof(upb_EnumReservedRange) * n);
for (int i = 0; i < n; i++) {
const int32_t start =
google_protobuf_EnumDescriptorProto_EnumReservedRange_start(protos[i]);
UPB_DESC(EnumDescriptorProto_EnumReservedRange_start)(protos[i]);
const int32_t end =
google_protobuf_EnumDescriptorProto_EnumReservedRange_end(protos[i]);
UPB_DESC(EnumDescriptorProto_EnumReservedRange_end)(protos[i]);
// A full validation would also check that each range is disjoint, and that
// none of the fields overlap with the extension ranges, but we are just

@ -43,7 +43,7 @@ upb_EnumReservedRange* _upb_EnumReservedRange_At(const upb_EnumReservedRange* r,
// Allocate and initialize an array of |n| reserved ranges owned by |e|.
upb_EnumReservedRange* _upb_EnumReservedRanges_New(
upb_DefBuilder* ctx, int n,
const google_protobuf_EnumDescriptorProto_EnumReservedRange* const* protos,
const UPB_DESC(EnumDescriptorProto_EnumReservedRange) * const* protos,
const upb_EnumDef* e);
#ifdef __cplusplus

@ -35,7 +35,7 @@
#include "upb/port/def.inc"
struct upb_EnumValueDef {
const google_protobuf_EnumValueOptions* opts;
const UPB_DESC(EnumValueOptions) * opts;
const upb_EnumDef* parent;
const char* full_name;
int32_t number;
@ -66,8 +66,8 @@ const upb_EnumValueDef** _upb_EnumValueDefs_Sorted(const upb_EnumValueDef* v,
return (const upb_EnumValueDef**)out;
}
const google_protobuf_EnumValueOptions* upb_EnumValueDef_Options(
const upb_EnumValueDef* v) {
const UPB_DESC(EnumValueOptions) *
upb_EnumValueDef_Options(const upb_EnumValueDef* v) {
return v->opts;
}
@ -95,13 +95,14 @@ uint32_t upb_EnumValueDef_Index(const upb_EnumValueDef* v) {
}
static void create_enumvaldef(upb_DefBuilder* ctx, const char* prefix,
const google_protobuf_EnumValueDescriptorProto* val_proto,
const UPB_DESC(EnumValueDescriptorProto) *
val_proto,
upb_EnumDef* e, upb_EnumValueDef* v) {
upb_StringView name = google_protobuf_EnumValueDescriptorProto_name(val_proto);
upb_StringView name = UPB_DESC(EnumValueDescriptorProto_name)(val_proto);
v->parent = e; // Must happen prior to _upb_DefBuilder_Add()
v->full_name = _upb_DefBuilder_MakeFullName(ctx, prefix, name);
v->number = google_protobuf_EnumValueDescriptorProto_number(val_proto);
v->number = UPB_DESC(EnumValueDescriptorProto_number)(val_proto);
_upb_DefBuilder_Add(ctx, v->full_name,
_upb_DefType_Pack(v, UPB_DEFTYPE_ENUMVAL));
@ -115,7 +116,7 @@ static void create_enumvaldef(upb_DefBuilder* ctx, const char* prefix,
// Allocate and initialize an array of |n| enum value defs owned by |e|.
upb_EnumValueDef* _upb_EnumValueDefs_New(
upb_DefBuilder* ctx, const char* prefix, int n,
const google_protobuf_EnumValueDescriptorProto* const* protos, upb_EnumDef* e,
const UPB_DESC(EnumValueDescriptorProto) * const* protos, upb_EnumDef* e,
bool* is_sorted) {
_upb_DefType_CheckPadding(sizeof(upb_EnumValueDef));

@ -45,8 +45,8 @@ bool upb_EnumValueDef_HasOptions(const upb_EnumValueDef* v);
uint32_t upb_EnumValueDef_Index(const upb_EnumValueDef* v);
const char* upb_EnumValueDef_Name(const upb_EnumValueDef* v);
int32_t upb_EnumValueDef_Number(const upb_EnumValueDef* v);
const google_protobuf_EnumValueOptions* upb_EnumValueDef_Options(
const upb_EnumValueDef* v);
const UPB_DESC(EnumValueOptions) *
upb_EnumValueDef_Options(const upb_EnumValueDef* v);
#ifdef __cplusplus
} /* extern "C" */

@ -42,7 +42,7 @@ upb_EnumValueDef* _upb_EnumValueDef_At(const upb_EnumValueDef* v, int i);
// Allocate and initialize an array of |n| enum value defs owned by |e|.
upb_EnumValueDef* _upb_EnumValueDefs_New(
upb_DefBuilder* ctx, const char* prefix, int n,
const google_protobuf_EnumValueDescriptorProto* const* protos, upb_EnumDef* e,
const UPB_DESC(EnumValueDescriptorProto) * const* protos, upb_EnumDef* e,
bool* is_sorted);
const upb_EnumValueDef** _upb_EnumValueDefs_Sorted(const upb_EnumValueDef* v,

@ -34,7 +34,7 @@
#include "upb/port/def.inc"
struct upb_ExtensionRange {
const google_protobuf_ExtensionRangeOptions* opts;
const UPB_DESC(ExtensionRangeOptions) * opts;
int32_t start;
int32_t end;
};
@ -43,8 +43,8 @@ upb_ExtensionRange* _upb_ExtensionRange_At(const upb_ExtensionRange* r, int i) {
return (upb_ExtensionRange*)&r[i];
}
const google_protobuf_ExtensionRangeOptions* upb_ExtensionRange_Options(
const upb_ExtensionRange* r) {
const UPB_DESC(ExtensionRangeOptions) *
upb_ExtensionRange_Options(const upb_ExtensionRange* r) {
return r->opts;
}
@ -60,19 +60,19 @@ int32_t upb_ExtensionRange_End(const upb_ExtensionRange* r) { return r->end; }
upb_ExtensionRange* _upb_ExtensionRanges_New(
upb_DefBuilder* ctx, int n,
const google_protobuf_DescriptorProto_ExtensionRange* const* protos,
const UPB_DESC(DescriptorProto_ExtensionRange) * const* protos,
const upb_MessageDef* m) {
upb_ExtensionRange* r =
_upb_DefBuilder_Alloc(ctx, sizeof(upb_ExtensionRange) * n);
for (int i = 0; i < n; i++) {
const int32_t start =
google_protobuf_DescriptorProto_ExtensionRange_start(protos[i]);
const int32_t end = google_protobuf_DescriptorProto_ExtensionRange_end(protos[i]);
const int32_t max =
google_protobuf_MessageOptions_message_set_wire_format(upb_MessageDef_Options(m))
? INT32_MAX
: kUpb_MaxFieldNumber + 1;
UPB_DESC(DescriptorProto_ExtensionRange_start)(protos[i]);
const int32_t end = UPB_DESC(DescriptorProto_ExtensionRange_end)(protos[i]);
const int32_t max = UPB_DESC(MessageOptions_message_set_wire_format)(
upb_MessageDef_Options(m))
? INT32_MAX
: kUpb_MaxFieldNumber + 1;
// A full validation would also check that each range is disjoint, and that
// none of the fields overlap with the extension ranges, but we are just

@ -43,8 +43,8 @@ int32_t upb_ExtensionRange_Start(const upb_ExtensionRange* r);
int32_t upb_ExtensionRange_End(const upb_ExtensionRange* r);
bool upb_ExtensionRange_HasOptions(const upb_ExtensionRange* r);
const google_protobuf_ExtensionRangeOptions* upb_ExtensionRange_Options(
const upb_ExtensionRange* r);
const UPB_DESC(ExtensionRangeOptions) *
upb_ExtensionRange_Options(const upb_ExtensionRange* r);
#ifdef __cplusplus
} /* extern "C" */

@ -42,7 +42,7 @@ upb_ExtensionRange* _upb_ExtensionRange_At(const upb_ExtensionRange* r, int i);
// Allocate and initialize an array of |n| extension ranges owned by |m|.
upb_ExtensionRange* _upb_ExtensionRanges_New(
upb_DefBuilder* ctx, int n,
const google_protobuf_DescriptorProto_ExtensionRange* const* protos,
const UPB_DESC(DescriptorProto_ExtensionRange) * const* protos,
const upb_MessageDef* m);
#ifdef __cplusplus

@ -52,7 +52,7 @@ typedef struct {
} str_t;
struct upb_FieldDef {
const google_protobuf_FieldOptions* opts;
const UPB_DESC(FieldOptions) * opts;
const upb_FileDef* file;
const upb_MessageDef* msgdef;
const char* full_name;
@ -73,7 +73,7 @@ struct upb_FieldDef {
union {
const upb_MessageDef* msgdef;
const upb_EnumDef* enumdef;
const google_protobuf_FieldDescriptorProto* unresolved;
const UPB_DESC(FieldDescriptorProto) * unresolved;
} sub;
uint32_t number_;
uint16_t index_;
@ -94,7 +94,7 @@ upb_FieldDef* _upb_FieldDef_At(const upb_FieldDef* f, int i) {
return (upb_FieldDef*)&f[i];
}
const google_protobuf_FieldOptions* upb_FieldDef_Options(const upb_FieldDef* f) {
const UPB_DESC(FieldOptions) * upb_FieldDef_Options(const upb_FieldDef* f) {
return f->opts;
}
@ -549,22 +549,23 @@ static void set_default_default(upb_DefBuilder* ctx, upb_FieldDef* f) {
}
static void _upb_FieldDef_Create(upb_DefBuilder* ctx, const char* prefix,
const google_protobuf_FieldDescriptorProto* field_proto,
const UPB_DESC(FieldDescriptorProto) *
field_proto,
upb_MessageDef* m, upb_FieldDef* f) {
// Must happen before _upb_DefBuilder_Add()
f->file = _upb_DefBuilder_File(ctx);
if (!google_protobuf_FieldDescriptorProto_has_name(field_proto)) {
if (!UPB_DESC(FieldDescriptorProto_has_name)(field_proto)) {
_upb_DefBuilder_Errf(ctx, "field has no name");
}
const upb_StringView name = google_protobuf_FieldDescriptorProto_name(field_proto);
const upb_StringView name = UPB_DESC(FieldDescriptorProto_name)(field_proto);
_upb_DefBuilder_CheckIdentNotFull(ctx, name);
f->has_json_name_ = google_protobuf_FieldDescriptorProto_has_json_name(field_proto);
f->has_json_name_ = UPB_DESC(FieldDescriptorProto_has_json_name)(field_proto);
if (f->has_json_name_) {
const upb_StringView sv =
google_protobuf_FieldDescriptorProto_json_name(field_proto);
UPB_DESC(FieldDescriptorProto_json_name)(field_proto);
f->json_name = upb_strdup2(sv.data, sv.size, ctx->arena);
} else {
f->json_name = make_json_name(name.data, name.size, ctx->arena);
@ -572,18 +573,18 @@ static void _upb_FieldDef_Create(upb_DefBuilder* ctx, const char* prefix,
if (!f->json_name) _upb_DefBuilder_OomErr(ctx);
f->full_name = _upb_DefBuilder_MakeFullName(ctx, prefix, name);
f->label_ = (int)google_protobuf_FieldDescriptorProto_label(field_proto);
f->number_ = google_protobuf_FieldDescriptorProto_number(field_proto);
f->label_ = (int)UPB_DESC(FieldDescriptorProto_label)(field_proto);
f->number_ = UPB_DESC(FieldDescriptorProto_number)(field_proto);
f->proto3_optional_ =
google_protobuf_FieldDescriptorProto_proto3_optional(field_proto);
UPB_DESC(FieldDescriptorProto_proto3_optional)(field_proto);
f->msgdef = m;
f->scope.oneof = NULL;
const bool has_type = google_protobuf_FieldDescriptorProto_has_type(field_proto);
const bool has_type = UPB_DESC(FieldDescriptorProto_has_type)(field_proto);
const bool has_type_name =
google_protobuf_FieldDescriptorProto_has_type_name(field_proto);
UPB_DESC(FieldDescriptorProto_has_type_name)(field_proto);
f->type_ = (int)google_protobuf_FieldDescriptorProto_type(field_proto);
f->type_ = (int)UPB_DESC(FieldDescriptorProto_type)(field_proto);
if (has_type) {
switch (f->type_) {
@ -628,8 +629,9 @@ static void _upb_FieldDef_Create(upb_DefBuilder* ctx, const char* prefix,
f->full_name);
}
if (google_protobuf_FieldDescriptorProto_has_oneof_index(field_proto)) {
uint32_t oneof_index = google_protobuf_FieldDescriptorProto_oneof_index(field_proto);
if (UPB_DESC(FieldDescriptorProto_has_oneof_index)(field_proto)) {
uint32_t oneof_index =
UPB_DESC(FieldDescriptorProto_oneof_index)(field_proto);
if (upb_FieldDef_Label(f) != kUpb_Label_Optional) {
_upb_DefBuilder_Errf(ctx, "fields in oneof must have OPTIONAL label (%s)",
@ -654,8 +656,8 @@ static void _upb_FieldDef_Create(upb_DefBuilder* ctx, const char* prefix,
UPB_DEF_SET_OPTIONS(f->opts, FieldDescriptorProto, FieldOptions, field_proto);
if (google_protobuf_FieldOptions_has_packed(f->opts)) {
f->is_packed_ = google_protobuf_FieldOptions_packed(f->opts);
if (UPB_DESC(FieldOptions_has_packed)(f->opts)) {
f->is_packed_ = UPB_DESC(FieldOptions_packed)(f->opts);
} else {
// Repeated fields default to packed for proto3 only.
f->is_packed_ = upb_FieldDef_IsPrimitive(f) &&
@ -664,14 +666,14 @@ static void _upb_FieldDef_Create(upb_DefBuilder* ctx, const char* prefix,
}
}
static void _upb_FieldDef_CreateExt(
upb_DefBuilder* ctx, const char* prefix,
const google_protobuf_FieldDescriptorProto* field_proto, upb_MessageDef* m,
upb_FieldDef* f) {
static void _upb_FieldDef_CreateExt(upb_DefBuilder* ctx, const char* prefix,
const UPB_DESC(FieldDescriptorProto) *
field_proto,
upb_MessageDef* m, upb_FieldDef* f) {
_upb_FieldDef_Create(ctx, prefix, field_proto, m, f);
f->is_extension_ = true;
if (google_protobuf_FieldDescriptorProto_has_oneof_index(field_proto)) {
if (UPB_DESC(FieldDescriptorProto_has_oneof_index)(field_proto)) {
_upb_DefBuilder_Errf(ctx, "oneof_index provided for extension field (%s)",
f->full_name);
}
@ -685,14 +687,14 @@ static void _upb_FieldDef_CreateExt(
}
}
static void _upb_FieldDef_CreateNotExt(
upb_DefBuilder* ctx, const char* prefix,
const google_protobuf_FieldDescriptorProto* field_proto, upb_MessageDef* m,
upb_FieldDef* f) {
static void _upb_FieldDef_CreateNotExt(upb_DefBuilder* ctx, const char* prefix,
const UPB_DESC(FieldDescriptorProto) *
field_proto,
upb_MessageDef* m, upb_FieldDef* f) {
_upb_FieldDef_Create(ctx, prefix, field_proto, m, f);
f->is_extension_ = false;
if (!google_protobuf_FieldDescriptorProto_has_oneof_index(field_proto)) {
if (!UPB_DESC(FieldDescriptorProto_has_oneof_index)(field_proto)) {
if (f->proto3_optional_) {
_upb_DefBuilder_Errf(
ctx,
@ -719,7 +721,7 @@ static void _upb_FieldDef_CreateNotExt(
upb_FieldDef* _upb_FieldDefs_New(
upb_DefBuilder* ctx, int n,
const google_protobuf_FieldDescriptorProto* const* protos, const char* prefix,
const UPB_DESC(FieldDescriptorProto) * const* protos, const char* prefix,
upb_MessageDef* m, bool* is_sorted) {
_upb_DefType_CheckPadding(sizeof(upb_FieldDef));
upb_FieldDef* defs =
@ -754,11 +756,9 @@ upb_FieldDef* _upb_FieldDefs_New(
static void resolve_subdef(upb_DefBuilder* ctx, const char* prefix,
upb_FieldDef* f) {
const google_protobuf_FieldDescriptorProto* field_proto = f->sub.unresolved;
upb_StringView name =
google_protobuf_FieldDescriptorProto_type_name(field_proto);
bool has_name =
google_protobuf_FieldDescriptorProto_has_type_name(field_proto);
const UPB_DESC(FieldDescriptorProto)* field_proto = f->sub.unresolved;
upb_StringView name = UPB_DESC(FieldDescriptorProto_type_name)(field_proto);
bool has_name = UPB_DESC(FieldDescriptorProto_has_type_name)(field_proto);
switch ((int)f->type_) {
case UPB_FIELD_TYPE_UNSPECIFIED: {
// Type was not specified and must be inferred.
@ -843,13 +843,14 @@ bool upb_FieldDef_MiniDescriptorEncode(const upb_FieldDef* f, upb_Arena* a,
static void resolve_extension(upb_DefBuilder* ctx, const char* prefix,
upb_FieldDef* f,
const google_protobuf_FieldDescriptorProto* field_proto) {
if (!google_protobuf_FieldDescriptorProto_has_extendee(field_proto)) {
const UPB_DESC(FieldDescriptorProto) *
field_proto) {
if (!UPB_DESC(FieldDescriptorProto_has_extendee)(field_proto)) {
_upb_DefBuilder_Errf(ctx, "extension for field '%s' had no extendee",
f->full_name);
}
upb_StringView name = google_protobuf_FieldDescriptorProto_extendee(field_proto);
upb_StringView name = UPB_DESC(FieldDescriptorProto_extendee)(field_proto);
const upb_MessageDef* m =
_upb_DefBuilder_Resolve(ctx, f->full_name, prefix, name, UPB_DEFTYPE_MSG);
f->msgdef = m;
@ -889,12 +890,13 @@ static void resolve_extension(upb_DefBuilder* ctx, const char* prefix,
}
static void resolve_default(upb_DefBuilder* ctx, upb_FieldDef* f,
const google_protobuf_FieldDescriptorProto* field_proto) {
const UPB_DESC(FieldDescriptorProto) *
field_proto) {
// Have to delay resolving of the default value until now because of the enum
// case, since enum defaults are specified with a label.
if (google_protobuf_FieldDescriptorProto_has_default_value(field_proto)) {
if (UPB_DESC(FieldDescriptorProto_has_default_value)(field_proto)) {
upb_StringView defaultval =
google_protobuf_FieldDescriptorProto_default_value(field_proto);
UPB_DESC(FieldDescriptorProto_default_value)(field_proto);
if (upb_FileDef_Syntax(f->file) == kUpb_Syntax_Proto3) {
_upb_DefBuilder_Errf(ctx,
@ -919,7 +921,7 @@ static void resolve_default(upb_DefBuilder* ctx, upb_FieldDef* f,
void _upb_FieldDef_Resolve(upb_DefBuilder* ctx, const char* prefix,
upb_FieldDef* f) {
// We have to stash this away since resolve_subdef() may overwrite it.
const google_protobuf_FieldDescriptorProto* field_proto = f->sub.unresolved;
const UPB_DESC(FieldDescriptorProto)* field_proto = f->sub.unresolved;
resolve_subdef(ctx, prefix, f);
resolve_default(ctx, f, field_proto);

@ -78,7 +78,7 @@ bool upb_FieldDef_MiniDescriptorEncode(const upb_FieldDef* f, upb_Arena* a,
const upb_MiniTableField* upb_FieldDef_MiniTable(const upb_FieldDef* f);
const char* upb_FieldDef_Name(const upb_FieldDef* f);
uint32_t upb_FieldDef_Number(const upb_FieldDef* f);
const google_protobuf_FieldOptions* upb_FieldDef_Options(const upb_FieldDef* f);
const UPB_DESC(FieldOptions) * upb_FieldDef_Options(const upb_FieldDef* f);
const upb_OneofDef* upb_FieldDef_RealContainingOneof(const upb_FieldDef* f);
upb_FieldType upb_FieldDef_Type(const upb_FieldDef* f);

@ -51,7 +51,7 @@ void _upb_FieldDef_Resolve(upb_DefBuilder* ctx, const char* prefix,
// Allocate and initialize an array of |n| field defs.
upb_FieldDef* _upb_FieldDefs_New(
upb_DefBuilder* ctx, int n,
const google_protobuf_FieldDescriptorProto* const* protos, const char* prefix,
const UPB_DESC(FieldDescriptorProto) * const* protos, const char* prefix,
upb_MessageDef* m, bool* is_sorted);
// Allocate and return a list of pointers to the |n| field defs in |ff|,

@ -37,7 +37,7 @@
#include "upb/port/def.inc"
struct upb_FileDef {
const google_protobuf_FileOptions* opts;
const UPB_DESC(FileOptions) * opts;
const char* name;
const char* package;
@ -62,7 +62,7 @@ struct upb_FileDef {
upb_Syntax syntax;
};
const google_protobuf_FileOptions* upb_FileDef_Options(const upb_FileDef* f) {
const UPB_DESC(FileOptions) * upb_FileDef_Options(const upb_FileDef* f) {
return f->opts;
}
@ -164,13 +164,13 @@ static bool streql_view(upb_StringView view, const char* b) {
return view.size == strlen(b) && memcmp(view.data, b, view.size) == 0;
}
static int count_exts_in_msg(const google_protobuf_DescriptorProto* msg_proto) {
static int count_exts_in_msg(const UPB_DESC(DescriptorProto) * msg_proto) {
size_t n;
google_protobuf_DescriptorProto_extension(msg_proto, &n);
UPB_DESC(DescriptorProto_extension)(msg_proto, &n);
int ext_count = n;
const google_protobuf_DescriptorProto* const* nested_msgs =
google_protobuf_DescriptorProto_nested_type(msg_proto, &n);
const UPB_DESC(DescriptorProto)* const* nested_msgs =
UPB_DESC(DescriptorProto_nested_type)(msg_proto, &n);
for (size_t i = 0; i < n; i++) {
ext_count += count_exts_in_msg(nested_msgs[i]);
}
@ -180,14 +180,14 @@ static int count_exts_in_msg(const google_protobuf_DescriptorProto* msg_proto) {
// Allocate and initialize one file def, and add it to the context object.
void _upb_FileDef_Create(upb_DefBuilder* ctx,
const google_protobuf_FileDescriptorProto* file_proto) {
const UPB_DESC(FileDescriptorProto) * file_proto) {
upb_FileDef* file = _upb_DefBuilder_Alloc(ctx, sizeof(upb_FileDef));
ctx->file = file;
const google_protobuf_DescriptorProto* const* msgs;
const google_protobuf_EnumDescriptorProto* const* enums;
const google_protobuf_FieldDescriptorProto* const* exts;
const google_protobuf_ServiceDescriptorProto* const* services;
const UPB_DESC(DescriptorProto)* const* msgs;
const UPB_DESC(EnumDescriptorProto)* const* enums;
const UPB_DESC(FieldDescriptorProto)* const* exts;
const UPB_DESC(ServiceDescriptorProto)* const* services;
const upb_StringView* strs;
const int32_t* public_deps;
const int32_t* weak_deps;
@ -196,9 +196,9 @@ void _upb_FileDef_Create(upb_DefBuilder* ctx,
file->symtab = ctx->symtab;
// Count all extensions in the file, to build a flat array of layouts.
google_protobuf_FileDescriptorProto_extension(file_proto, &n);
UPB_DESC(FileDescriptorProto_extension)(file_proto, &n);
int ext_count = n;
msgs = google_protobuf_FileDescriptorProto_message_type(file_proto, &n);
msgs = UPB_DESC(FileDescriptorProto_message_type)(file_proto, &n);
for (int i = 0; i < n; i++) {
ext_count += count_exts_in_msg(msgs[i]);
}
@ -223,13 +223,13 @@ void _upb_FileDef_Create(upb_DefBuilder* ctx,
}
}
if (!google_protobuf_FileDescriptorProto_has_name(file_proto)) {
if (!UPB_DESC(FileDescriptorProto_has_name)(file_proto)) {
_upb_DefBuilder_Errf(ctx, "File has no name");
}
file->name = strviewdup(ctx, google_protobuf_FileDescriptorProto_name(file_proto));
file->name = strviewdup(ctx, UPB_DESC(FileDescriptorProto_name)(file_proto));
upb_StringView package = google_protobuf_FileDescriptorProto_package(file_proto);
upb_StringView package = UPB_DESC(FileDescriptorProto_package)(file_proto);
if (package.size) {
_upb_DefBuilder_CheckIdentFull(ctx, package);
file->package = strviewdup(ctx, package);
@ -237,8 +237,8 @@ void _upb_FileDef_Create(upb_DefBuilder* ctx,
file->package = NULL;
}
if (google_protobuf_FileDescriptorProto_has_syntax(file_proto)) {
upb_StringView syntax = google_protobuf_FileDescriptorProto_syntax(file_proto);
if (UPB_DESC(FileDescriptorProto_has_syntax)(file_proto)) {
upb_StringView syntax = UPB_DESC(FileDescriptorProto_syntax)(file_proto);
if (streql_view(syntax, "proto2")) {
file->syntax = kUpb_Syntax_Proto2;
@ -256,7 +256,7 @@ void _upb_FileDef_Create(upb_DefBuilder* ctx,
UPB_DEF_SET_OPTIONS(file->opts, FileDescriptorProto, FileOptions, file_proto);
// Verify dependencies.
strs = google_protobuf_FileDescriptorProto_dependency(file_proto, &n);
strs = UPB_DESC(FileDescriptorProto_dependency)(file_proto, &n);
file->dep_count = n;
file->deps = _upb_DefBuilder_Alloc(ctx, sizeof(*file->deps) * n);
@ -272,7 +272,7 @@ void _upb_FileDef_Create(upb_DefBuilder* ctx,
}
}
public_deps = google_protobuf_FileDescriptorProto_public_dependency(file_proto, &n);
public_deps = UPB_DESC(FileDescriptorProto_public_dependency)(file_proto, &n);
file->public_dep_count = n;
file->public_deps =
_upb_DefBuilder_Alloc(ctx, sizeof(*file->public_deps) * n);
@ -285,7 +285,7 @@ void _upb_FileDef_Create(upb_DefBuilder* ctx,
mutable_public_deps[i] = public_deps[i];
}
weak_deps = google_protobuf_FileDescriptorProto_weak_dependency(file_proto, &n);
weak_deps = UPB_DESC(FileDescriptorProto_weak_dependency)(file_proto, &n);
file->weak_dep_count = n;
file->weak_deps = _upb_DefBuilder_Alloc(ctx, sizeof(*file->weak_deps) * n);
int32_t* mutable_weak_deps = (int32_t*)file->weak_deps;
@ -298,23 +298,23 @@ void _upb_FileDef_Create(upb_DefBuilder* ctx,
}
// Create enums.
enums = google_protobuf_FileDescriptorProto_enum_type(file_proto, &n);
enums = UPB_DESC(FileDescriptorProto_enum_type)(file_proto, &n);
file->top_lvl_enum_count = n;
file->top_lvl_enums = _upb_EnumDefs_New(ctx, n, enums, NULL);
// Create extensions.
exts = google_protobuf_FileDescriptorProto_extension(file_proto, &n);
exts = UPB_DESC(FileDescriptorProto_extension)(file_proto, &n);
file->top_lvl_ext_count = n;
file->top_lvl_exts =
_upb_FieldDefs_New(ctx, n, exts, file->package, NULL, NULL);
// Create messages.
msgs = google_protobuf_FileDescriptorProto_message_type(file_proto, &n);
msgs = UPB_DESC(FileDescriptorProto_message_type)(file_proto, &n);
file->top_lvl_msg_count = n;
file->top_lvl_msgs = _upb_MessageDefs_New(ctx, n, msgs, NULL);
// Create services.
services = google_protobuf_FileDescriptorProto_service(file_proto, &n);
services = UPB_DESC(FileDescriptorProto_service)(file_proto, &n);
file->service_count = n;
file->services = _upb_ServiceDefs_New(ctx, n, services);

@ -43,7 +43,7 @@ const upb_FileDef* upb_FileDef_Dependency(const upb_FileDef* f, int i);
int upb_FileDef_DependencyCount(const upb_FileDef* f);
bool upb_FileDef_HasOptions(const upb_FileDef* f);
const char* upb_FileDef_Name(const upb_FileDef* f);
const google_protobuf_FileOptions* upb_FileDef_Options(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 upb_DefPool* upb_FileDef_Pool(const upb_FileDef* f);

@ -46,7 +46,7 @@ const int32_t* _upb_FileDef_WeakDependencyIndexes(const upb_FileDef* f);
const char* _upb_FileDef_RawPackage(const upb_FileDef* f);
void _upb_FileDef_Create(upb_DefBuilder* ctx,
const google_protobuf_FileDescriptorProto* file_proto);
const UPB_DESC(FileDescriptorProto) * file_proto);
#ifdef __cplusplus
} /* extern "C" */

@ -44,7 +44,7 @@
#include "upb/port/def.inc"
struct upb_MessageDef {
const google_protobuf_MessageOptions* opts;
const UPB_DESC(MessageOptions) * opts;
const upb_MiniTable* layout;
const upb_FileDef* file;
const upb_MessageDef* containing_type;
@ -141,7 +141,8 @@ bool _upb_MessageDef_IsValidExtensionNumber(const upb_MessageDef* m, int n) {
return false;
}
const google_protobuf_MessageOptions* upb_MessageDef_Options(const upb_MessageDef* m) {
const UPB_DESC(MessageOptions) *
upb_MessageDef_Options(const upb_MessageDef* m) {
return m->opts;
}
@ -255,6 +256,10 @@ int upb_MessageDef_OneofCount(const upb_MessageDef* m) {
return m->oneof_count;
}
int upb_MessageDef_RealOneofCount(const upb_MessageDef* m) {
return m->real_oneof_count;
}
int upb_MessageDef_NestedMessageCount(const upb_MessageDef* m) {
return m->nested_msg_count;
}
@ -334,11 +339,11 @@ const upb_OneofDef* upb_MessageDef_FindOneofByName(const upb_MessageDef* m,
}
bool upb_MessageDef_IsMapEntry(const upb_MessageDef* m) {
return google_protobuf_MessageOptions_map_entry(m->opts);
return UPB_DESC(MessageOptions_map_entry)(m->opts);
}
bool upb_MessageDef_IsMessageSet(const upb_MessageDef* m) {
return google_protobuf_MessageOptions_message_set_wire_format(m->opts);
return UPB_DESC(MessageOptions_message_set_wire_format)(m->opts);
}
static upb_MiniTable* _upb_MessageDef_MakeMiniTable(upb_DefBuilder* ctx,
@ -387,7 +392,7 @@ void _upb_MessageDef_Resolve(upb_DefBuilder* ctx, upb_MessageDef* m) {
if (upb_FieldDef_Type(ext) == kUpb_FieldType_Message &&
upb_FieldDef_Label(ext) == kUpb_Label_Optional &&
upb_FieldDef_MessageSubDef(ext) == m &&
google_protobuf_MessageOptions_message_set_wire_format(
UPB_DESC(MessageOptions_message_set_wire_format)(
upb_MessageDef_Options(upb_FieldDef_ContainingType(ext)))) {
m->in_message_set = true;
}
@ -556,7 +561,7 @@ bool upb_MessageDef_MiniDescriptorEncode(const upb_MessageDef* m, upb_Arena* a,
if (upb_MessageDef_IsMapEntry(m)) {
if (!_upb_MessageDef_EncodeMap(&s, m, a)) return false;
} else if (google_protobuf_MessageOptions_message_set_wire_format(m->opts)) {
} else if (UPB_DESC(MessageOptions_message_set_wire_format)(m->opts)) {
if (!_upb_MessageDef_EncodeMessageSet(&s, m, a)) return false;
} else {
if (!_upb_MessageDef_EncodeMessage(&s, m, a)) return false;
@ -582,13 +587,13 @@ static upb_StringView* _upb_ReservedNames_New(upb_DefBuilder* ctx, int n,
}
static void create_msgdef(upb_DefBuilder* ctx, const char* prefix,
const google_protobuf_DescriptorProto* msg_proto,
const UPB_DESC(DescriptorProto) * msg_proto,
const upb_MessageDef* containing_type,
upb_MessageDef* m) {
const google_protobuf_OneofDescriptorProto* const* oneofs;
const google_protobuf_FieldDescriptorProto* const* fields;
const google_protobuf_DescriptorProto_ExtensionRange* const* ext_ranges;
const google_protobuf_DescriptorProto_ReservedRange* const* res_ranges;
const UPB_DESC(OneofDescriptorProto)* const* oneofs;
const UPB_DESC(FieldDescriptorProto)* const* fields;
const UPB_DESC(DescriptorProto_ExtensionRange)* const* ext_ranges;
const UPB_DESC(DescriptorProto_ReservedRange)* const* res_ranges;
const upb_StringView* res_names;
size_t n_oneof, n_field, n_enum, n_ext, n_msg;
size_t n_ext_range, n_res_range, n_res_name;
@ -600,17 +605,19 @@ static void create_msgdef(upb_DefBuilder* ctx, const char* prefix,
m->containing_type = containing_type;
m->is_sorted = true;
name = google_protobuf_DescriptorProto_name(msg_proto);
name = UPB_DESC(DescriptorProto_name)(msg_proto);
_upb_DefBuilder_CheckIdentNotFull(ctx, name);
m->full_name = _upb_DefBuilder_MakeFullName(ctx, prefix, name);
_upb_DefBuilder_Add(ctx, m->full_name, _upb_DefType_Pack(m, UPB_DEFTYPE_MSG));
oneofs = google_protobuf_DescriptorProto_oneof_decl(msg_proto, &n_oneof);
fields = google_protobuf_DescriptorProto_field(msg_proto, &n_field);
ext_ranges = google_protobuf_DescriptorProto_extension_range(msg_proto, &n_ext_range);
res_ranges = google_protobuf_DescriptorProto_reserved_range(msg_proto, &n_res_range);
res_names = google_protobuf_DescriptorProto_reserved_name(msg_proto, &n_res_name);
oneofs = UPB_DESC(DescriptorProto_oneof_decl)(msg_proto, &n_oneof);
fields = UPB_DESC(DescriptorProto_field)(msg_proto, &n_field);
ext_ranges =
UPB_DESC(DescriptorProto_extension_range)(msg_proto, &n_ext_range);
res_ranges =
UPB_DESC(DescriptorProto_reserved_range)(msg_proto, &n_res_range);
res_names = UPB_DESC(DescriptorProto_reserved_name)(msg_proto, &n_res_name);
bool ok = upb_inttable_init(&m->itof, ctx->arena);
if (!ok) _upb_DefBuilder_OomErr(ctx);
@ -639,7 +646,7 @@ static void create_msgdef(upb_DefBuilder* ctx, const char* prefix,
_upb_FieldDefs_New(ctx, n_field, fields, m->full_name, m, &m->is_sorted);
// Message Sets may not contain fields.
if (UPB_UNLIKELY(google_protobuf_MessageOptions_message_set_wire_format(m->opts))) {
if (UPB_UNLIKELY(UPB_DESC(MessageOptions_message_set_wire_format)(m->opts))) {
if (UPB_UNLIKELY(n_field > 0)) {
_upb_DefBuilder_Errf(ctx, "invalid message set (%s)", m->full_name);
}
@ -661,25 +668,25 @@ static void create_msgdef(upb_DefBuilder* ctx, const char* prefix,
assign_msg_wellknowntype(m);
upb_inttable_compact(&m->itof, ctx->arena);
const google_protobuf_EnumDescriptorProto* const* enums =
google_protobuf_DescriptorProto_enum_type(msg_proto, &n_enum);
const UPB_DESC(EnumDescriptorProto)* const* enums =
UPB_DESC(DescriptorProto_enum_type)(msg_proto, &n_enum);
m->nested_enum_count = n_enum;
m->nested_enums = _upb_EnumDefs_New(ctx, n_enum, enums, m);
const google_protobuf_FieldDescriptorProto* const* exts =
google_protobuf_DescriptorProto_extension(msg_proto, &n_ext);
const UPB_DESC(FieldDescriptorProto)* const* exts =
UPB_DESC(DescriptorProto_extension)(msg_proto, &n_ext);
m->nested_ext_count = n_ext;
m->nested_exts = _upb_FieldDefs_New(ctx, n_ext, exts, m->full_name, m, NULL);
const google_protobuf_DescriptorProto* const* msgs =
google_protobuf_DescriptorProto_nested_type(msg_proto, &n_msg);
const UPB_DESC(DescriptorProto)* const* msgs =
UPB_DESC(DescriptorProto_nested_type)(msg_proto, &n_msg);
m->nested_msg_count = n_msg;
m->nested_msgs = _upb_MessageDefs_New(ctx, n_msg, msgs, m);
}
// Allocate and initialize an array of |n| message defs.
upb_MessageDef* _upb_MessageDefs_New(
upb_DefBuilder* ctx, int n, const google_protobuf_DescriptorProto* const* protos,
upb_DefBuilder* ctx, int n, const UPB_DESC(DescriptorProto) * const* protos,
const upb_MessageDef* containing_type) {
_upb_DefType_CheckPadding(sizeof(upb_MessageDef));

@ -150,8 +150,10 @@ int upb_MessageDef_NestedMessageCount(const upb_MessageDef* m);
const upb_OneofDef* upb_MessageDef_Oneof(const upb_MessageDef* m, int i);
int upb_MessageDef_OneofCount(const upb_MessageDef* m);
int upb_MessageDef_RealOneofCount(const upb_MessageDef* m);
const google_protobuf_MessageOptions* upb_MessageDef_Options(const upb_MessageDef* m);
const UPB_DESC(MessageOptions) *
upb_MessageDef_Options(const upb_MessageDef* m);
upb_StringView upb_MessageDef_ReservedName(const upb_MessageDef* m, int i);
int upb_MessageDef_ReservedNameCount(const upb_MessageDef* m);

@ -50,7 +50,7 @@ void _upb_MessageDef_Resolve(upb_DefBuilder* ctx, upb_MessageDef* m);
// Allocate and initialize an array of |n| message defs.
upb_MessageDef* _upb_MessageDefs_New(
upb_DefBuilder* ctx, int n, const google_protobuf_DescriptorProto* const* protos,
upb_DefBuilder* ctx, int n, const UPB_DESC(DescriptorProto) * const* protos,
const upb_MessageDef* containing_type);
#ifdef __cplusplus

@ -53,14 +53,15 @@ int32_t upb_MessageReservedRange_End(const upb_MessageReservedRange* r) {
upb_MessageReservedRange* _upb_MessageReservedRanges_New(
upb_DefBuilder* ctx, int n,
const google_protobuf_DescriptorProto_ReservedRange* const* protos,
const UPB_DESC(DescriptorProto_ReservedRange) * const* protos,
const upb_MessageDef* m) {
upb_MessageReservedRange* r =
_upb_DefBuilder_Alloc(ctx, sizeof(upb_MessageReservedRange) * n);
for (int i = 0; i < n; i++) {
const int32_t start = google_protobuf_DescriptorProto_ReservedRange_start(protos[i]);
const int32_t end = google_protobuf_DescriptorProto_ReservedRange_end(protos[i]);
const int32_t start =
UPB_DESC(DescriptorProto_ReservedRange_start)(protos[i]);
const int32_t end = UPB_DESC(DescriptorProto_ReservedRange_end)(protos[i]);
const int32_t max = kUpb_MaxFieldNumber + 1;
// A full validation would also check that each range is disjoint, and that

@ -43,7 +43,7 @@ upb_MessageReservedRange* _upb_MessageReservedRange_At(
// Allocate and initialize an array of |n| reserved ranges owned by |m|.
upb_MessageReservedRange* _upb_MessageReservedRanges_New(
upb_DefBuilder* ctx, int n,
const google_protobuf_DescriptorProto_ReservedRange* const* protos,
const UPB_DESC(DescriptorProto_ReservedRange) * const* protos,
const upb_MessageDef* m);
#ifdef __cplusplus

@ -34,7 +34,7 @@
#include "upb/port/def.inc"
struct upb_MethodDef {
const google_protobuf_MethodOptions* opts;
const UPB_DESC(MethodOptions) * opts;
upb_ServiceDef* service;
const char* full_name;
const upb_MessageDef* input_type;
@ -52,7 +52,7 @@ const upb_ServiceDef* upb_MethodDef_Service(const upb_MethodDef* m) {
return m->service;
}
const google_protobuf_MethodOptions* upb_MethodDef_Options(const upb_MethodDef* m) {
const UPB_DESC(MethodOptions) * upb_MethodDef_Options(const upb_MethodDef* m) {
return m->opts;
}
@ -87,23 +87,25 @@ bool upb_MethodDef_ServerStreaming(const upb_MethodDef* m) {
}
static void create_method(upb_DefBuilder* ctx,
const google_protobuf_MethodDescriptorProto* method_proto,
const UPB_DESC(MethodDescriptorProto) * method_proto,
upb_ServiceDef* s, upb_MethodDef* m) {
upb_StringView name = google_protobuf_MethodDescriptorProto_name(method_proto);
upb_StringView name = UPB_DESC(MethodDescriptorProto_name)(method_proto);
m->service = s;
m->full_name =
_upb_DefBuilder_MakeFullName(ctx, upb_ServiceDef_FullName(s), name);
m->client_streaming =
google_protobuf_MethodDescriptorProto_client_streaming(method_proto);
UPB_DESC(MethodDescriptorProto_client_streaming)(method_proto);
m->server_streaming =
google_protobuf_MethodDescriptorProto_server_streaming(method_proto);
UPB_DESC(MethodDescriptorProto_server_streaming)(method_proto);
m->input_type = _upb_DefBuilder_Resolve(
ctx, m->full_name, m->full_name,
google_protobuf_MethodDescriptorProto_input_type(method_proto), UPB_DEFTYPE_MSG);
UPB_DESC(MethodDescriptorProto_input_type)(method_proto),
UPB_DEFTYPE_MSG);
m->output_type = _upb_DefBuilder_Resolve(
ctx, m->full_name, m->full_name,
google_protobuf_MethodDescriptorProto_output_type(method_proto), UPB_DEFTYPE_MSG);
UPB_DESC(MethodDescriptorProto_output_type)(method_proto),
UPB_DEFTYPE_MSG);
UPB_DEF_SET_OPTIONS(m->opts, MethodDescriptorProto, MethodOptions,
method_proto);
@ -112,7 +114,7 @@ static void create_method(upb_DefBuilder* ctx,
// Allocate and initialize an array of |n| method defs belonging to |s|.
upb_MethodDef* _upb_MethodDefs_New(
upb_DefBuilder* ctx, int n,
const google_protobuf_MethodDescriptorProto* const* protos, upb_ServiceDef* s) {
const UPB_DESC(MethodDescriptorProto) * const* protos, upb_ServiceDef* s) {
upb_MethodDef* m = _upb_DefBuilder_Alloc(ctx, sizeof(upb_MethodDef) * n);
for (int i = 0; i < n; i++) {
create_method(ctx, protos[i], s, &m[i]);

@ -45,7 +45,7 @@ bool upb_MethodDef_HasOptions(const upb_MethodDef* m);
int upb_MethodDef_Index(const upb_MethodDef* m);
const upb_MessageDef* upb_MethodDef_InputType(const upb_MethodDef* m);
const char* upb_MethodDef_Name(const upb_MethodDef* m);
const google_protobuf_MethodOptions* upb_MethodDef_Options(const upb_MethodDef* m);
const UPB_DESC(MethodOptions) * upb_MethodDef_Options(const upb_MethodDef* m);
const upb_MessageDef* upb_MethodDef_OutputType(const upb_MethodDef* m);
bool upb_MethodDef_ServerStreaming(const upb_MethodDef* m);
const upb_ServiceDef* upb_MethodDef_Service(const upb_MethodDef* m);

@ -42,7 +42,7 @@ upb_MethodDef* _upb_MethodDef_At(const upb_MethodDef* m, int i);
// Allocate and initialize an array of |n| method defs owned by |s|.
upb_MethodDef* _upb_MethodDefs_New(
upb_DefBuilder* ctx, int n,
const google_protobuf_MethodDescriptorProto* const* protos, upb_ServiceDef* s);
const UPB_DESC(MethodDescriptorProto) * const* protos, upb_ServiceDef* s);
#ifdef __cplusplus
} /* extern "C" */

@ -41,7 +41,7 @@
#include "upb/port/def.inc"
struct upb_OneofDef {
const google_protobuf_OneofOptions* opts;
const UPB_DESC(OneofOptions) * opts;
const upb_MessageDef* parent;
const char* full_name;
int field_count;
@ -58,7 +58,7 @@ upb_OneofDef* _upb_OneofDef_At(const upb_OneofDef* o, int i) {
return (upb_OneofDef*)&o[i];
}
const google_protobuf_OneofOptions* upb_OneofDef_Options(const upb_OneofDef* o) {
const UPB_DESC(OneofOptions) * upb_OneofDef_Options(const upb_OneofDef* o) {
return o->opts;
}
@ -164,10 +164,10 @@ size_t _upb_OneofDefs_Finalize(upb_DefBuilder* ctx, upb_MessageDef* m) {
}
static void create_oneofdef(upb_DefBuilder* ctx, upb_MessageDef* m,
const google_protobuf_OneofDescriptorProto* oneof_proto,
const UPB_DESC(OneofDescriptorProto) * oneof_proto,
const upb_OneofDef* _o) {
upb_OneofDef* o = (upb_OneofDef*)_o;
upb_StringView name = google_protobuf_OneofDescriptorProto_name(oneof_proto);
upb_StringView name = UPB_DESC(OneofDescriptorProto_name)(oneof_proto);
o->parent = m;
o->full_name =
@ -195,7 +195,7 @@ static void create_oneofdef(upb_DefBuilder* ctx, upb_MessageDef* m,
// Allocate and initialize an array of |n| oneof defs.
upb_OneofDef* _upb_OneofDefs_New(
upb_DefBuilder* ctx, int n,
const google_protobuf_OneofDescriptorProto* const* protos, upb_MessageDef* m) {
const UPB_DESC(OneofDescriptorProto) * const* protos, upb_MessageDef* m) {
_upb_DefType_CheckPadding(sizeof(upb_OneofDef));
upb_OneofDef* o = _upb_DefBuilder_Alloc(ctx, sizeof(upb_OneofDef) * n);

@ -55,7 +55,7 @@ const upb_FieldDef* upb_OneofDef_LookupNumber(const upb_OneofDef* o,
uint32_t num);
const char* upb_OneofDef_Name(const upb_OneofDef* o);
int upb_OneofDef_numfields(const upb_OneofDef* o);
const google_protobuf_OneofOptions* upb_OneofDef_Options(const upb_OneofDef* o);
const UPB_DESC(OneofOptions) * upb_OneofDef_Options(const upb_OneofDef* o);
#ifdef __cplusplus
} /* extern "C" */

@ -44,7 +44,7 @@ bool _upb_OneofDef_Insert(upb_OneofDef* o, const upb_FieldDef* f,
// Allocate and initialize an array of |n| oneof defs owned by |m|.
upb_OneofDef* _upb_OneofDefs_New(
upb_DefBuilder* ctx, int n,
const google_protobuf_OneofDescriptorProto* const* protos, upb_MessageDef* m);
const UPB_DESC(OneofDescriptorProto) * const* protos, upb_MessageDef* m);
size_t _upb_OneofDefs_Finalize(upb_DefBuilder* ctx, upb_MessageDef* m);

@ -35,7 +35,7 @@
#include "upb/port/def.inc"
struct upb_ServiceDef {
const google_protobuf_ServiceOptions* opts;
const UPB_DESC(ServiceOptions) * opts;
const upb_FileDef* file;
const char* full_name;
upb_MethodDef* methods;
@ -47,7 +47,8 @@ upb_ServiceDef* _upb_ServiceDef_At(const upb_ServiceDef* s, int index) {
return (upb_ServiceDef*)&s[index];
}
const google_protobuf_ServiceOptions* upb_ServiceDef_Options(const upb_ServiceDef* s) {
const UPB_DESC(ServiceOptions) *
upb_ServiceDef_Options(const upb_ServiceDef* s) {
return s->opts;
}
@ -90,7 +91,7 @@ const upb_MethodDef* upb_ServiceDef_FindMethodByName(const upb_ServiceDef* s,
}
static void create_service(upb_DefBuilder* ctx,
const google_protobuf_ServiceDescriptorProto* svc_proto,
const UPB_DESC(ServiceDescriptorProto) * svc_proto,
upb_ServiceDef* s) {
upb_StringView name;
size_t n;
@ -98,15 +99,15 @@ static void create_service(upb_DefBuilder* ctx,
// Must happen before _upb_DefBuilder_Add()
s->file = _upb_DefBuilder_File(ctx);
name = google_protobuf_ServiceDescriptorProto_name(svc_proto);
name = UPB_DESC(ServiceDescriptorProto_name)(svc_proto);
_upb_DefBuilder_CheckIdentNotFull(ctx, name);
const char* package = _upb_FileDef_RawPackage(s->file);
s->full_name = _upb_DefBuilder_MakeFullName(ctx, package, name);
_upb_DefBuilder_Add(ctx, s->full_name,
_upb_DefType_Pack(s, UPB_DEFTYPE_SERVICE));
const google_protobuf_MethodDescriptorProto* const* methods =
google_protobuf_ServiceDescriptorProto_method(svc_proto, &n);
const UPB_DESC(MethodDescriptorProto)* const* methods =
UPB_DESC(ServiceDescriptorProto_method)(svc_proto, &n);
s->method_count = n;
s->methods = _upb_MethodDefs_New(ctx, n, methods, s);
@ -116,7 +117,7 @@ static void create_service(upb_DefBuilder* ctx,
upb_ServiceDef* _upb_ServiceDefs_New(
upb_DefBuilder* ctx, int n,
const google_protobuf_ServiceDescriptorProto* const* protos) {
const UPB_DESC(ServiceDescriptorProto) * const* protos) {
_upb_DefType_CheckPadding(sizeof(upb_ServiceDef));
upb_ServiceDef* s = _upb_DefBuilder_Alloc(ctx, sizeof(upb_ServiceDef) * n);

@ -48,7 +48,8 @@ int upb_ServiceDef_Index(const upb_ServiceDef* s);
const upb_MethodDef* upb_ServiceDef_Method(const upb_ServiceDef* s, int i);
int upb_ServiceDef_MethodCount(const upb_ServiceDef* s);
const char* upb_ServiceDef_Name(const upb_ServiceDef* s);
const google_protobuf_ServiceOptions* upb_ServiceDef_Options(const upb_ServiceDef* s);
const UPB_DESC(ServiceOptions) *
upb_ServiceDef_Options(const upb_ServiceDef* s);
#ifdef __cplusplus
} /* extern "C" */

@ -42,7 +42,7 @@ upb_ServiceDef* _upb_ServiceDef_At(const upb_ServiceDef* s, int i);
// Allocate and initialize an array of |n| service defs.
upb_ServiceDef* _upb_ServiceDefs_New(
upb_DefBuilder* ctx, int n,
const google_protobuf_ServiceDescriptorProto* const* protos);
const UPB_DESC(ServiceDescriptorProto) * const* protos);
#ifdef __cplusplus
} /* extern "C" */

Loading…
Cancel
Save