8#ifndef UPB_REFLECTION_DEF_BUILDER_INTERNAL_H_
9#define UPB_REFLECTION_DEF_BUILDER_INTERNAL_H_
32#define UPB_DEF_SET_OPTIONS(target, desc_type, options_type, proto) \
33 if (UPB_DESC(desc_type##_has_options)(proto)) { \
35 char* pb = UPB_DESC(options_type##_serialize)( \
36 UPB_DESC(desc_type##_options)(proto), ctx->tmp_arena, &size); \
37 if (!pb) _upb_DefBuilder_OomErr(ctx); \
39 UPB_DESC(options_type##_parse)(pb, size, _upb_DefBuilder_Arena(ctx)); \
40 if (!target) _upb_DefBuilder_OomErr(ctx); \
42 target = (const UPB_DESC(options_type)*)kUpbDefOptDefault; \
83 const
char* from_name_dbg,
88 const
char* from_name_dbg, const
char* base,
92 const
char** src, const
char* end);
97 if (
bytes == 0)
return NULL;
106 if (count == 0)
return NULL;
107 if (SIZE_MAX / size < count) {
113#define UPB_DEFBUILDER_ALLOCARRAY(ctx, type, count) \
114 ((type*)_upb_DefBuilder_AllocCounted(ctx, sizeof(type), (count)))
143 bool good = name.size > 0;
146 for (
size_t i = 0; i < name.size; i++) {
147 const char c = name.data[i];
148 const char d = c | 0x20;
149 const bool is_alpha = ((
'a' <= d) & (d <=
'z')) | (c ==
'_');
150 const bool is_numer = (
'0' <= c) & (c <=
'9') & !start;
151 const bool is_dot = (c ==
'.') & !start;
153 good &= is_alpha | is_numer | is_dot;
176 return _upb_DefBuilder_DoResolveFeatures(ctx, parent, child,
false);
#define UPB_DESC(sym)
Definition def.inc:496
#define UPB_PRINTF(str, first_vararg)
Definition def.inc:291
#define UPB_NORETURN
Definition def.inc:290
#define UPB_INLINE
Definition def.inc:144
UPB_NORETURN void UPB_NORETURN void _upb_DefBuilder_OomErr(upb_DefBuilder *ctx)
const char * kUpbDefOptDefault
UPB_INLINE void _upb_DefBuilder_Add(upb_DefBuilder *ctx, const char *name, upb_value v)
Definition def_builder.h:119
const const const bool is_implicit
Definition def_builder.h:170
UPB_INLINE void * _upb_DefBuilder_Alloc(upb_DefBuilder *ctx, size_t bytes)
Definition def_builder.h:96
UPB_INLINE void _upb_DefBuilder_CheckIdentFull(upb_DefBuilder *ctx, upb_StringView name)
Definition def_builder.h:141
const void * _upb_DefBuilder_Resolve(upb_DefBuilder *ctx, const char *from_name_dbg, const char *base, upb_StringView sym, upb_deftype_t type)
UPB_NORETURN void _upb_DefBuilder_Errf(upb_DefBuilder *ctx, const char *fmt,...) UPB_PRINTF(2
bool _upb_DefBuilder_GetOrCreateFeatureSet(upb_DefBuilder *ctx, const UPB_DESC(FeatureSet *) parent, upb_StringView key, UPB_DESC(FeatureSet **) set)
const char * _upb_DefBuilder_FullToShort(const char *fullname)
UPB_NORETURN void _upb_DefBuilder_FailJmp(upb_DefBuilder *ctx)
UPB_INLINE upb_FileDef * _upb_DefBuilder_File(const upb_DefBuilder *ctx)
Definition def_builder.h:130
UPB_INLINE void * _upb_DefBuilder_AllocCounted(upb_DefBuilder *ctx, size_t size, size_t count)
Definition def_builder.h:104
const char * _upb_DefBuilder_MakeFullName(upb_DefBuilder *ctx, const char *prefix, upb_StringView name)
const void * _upb_DefBuilder_ResolveAny(upb_DefBuilder *ctx, const char *from_name_dbg, const char *base, upb_StringView sym, upb_deftype_t *type)
char _upb_DefBuilder_ParseEscape(upb_DefBuilder *ctx, const upb_FieldDef *f, const char **src, const char *end)
UPB_INLINE upb_Arena * _upb_DefBuilder_Arena(const upb_DefBuilder *ctx)
Definition def_builder.h:126
void _upb_DefBuilder_CheckIdentSlow(upb_DefBuilder *ctx, upb_StringView name, bool full)
upb_deftype_t
Definition def_type.h:17
UPB_API_INLINE void * upb_Arena_Malloc(struct upb_Arena *a, size_t size)
Definition arena.h:65
bool _upb_DefPool_InsertSym(upb_DefPool *s, upb_StringView sym, upb_value v, upb_Status *status)
upb_MiniTablePlatform
Definition decode.h:30
struct upb_FieldDef upb_FieldDef
Definition common.h:29
struct upb_FileDef upb_FileDef
Definition common.h:30
struct upb_DefPool upb_DefPool
Definition common.h:24
Definition def_builder.h:49
int ext_count
Definition def_builder.h:63
UPB_DESC(FeatureSet *) legacy_features
size_t tmp_buf_size
Definition def_builder.h:54
int msg_count
Definition def_builder.h:62
upb_DefPool * symtab
Definition def_builder.h:50
upb_FileDef * file
Definition def_builder.h:55
char * tmp_buf
Definition def_builder.h:53
jmp_buf err
Definition def_builder.h:64
const upb_MiniTableFile * layout
Definition def_builder.h:59
upb_Arena * tmp_arena
Definition def_builder.h:57
upb_Status * status
Definition def_builder.h:58
upb_MiniTablePlatform platform
Definition def_builder.h:60
upb_strtable feature_cache
Definition def_builder.h:51
int enum_count
Definition def_builder.h:61
upb_Arena * arena
Definition def_builder.h:56
Definition string_view.h:23
Definition str_table.h:22