Classes | Macros | Enumerations | Functions
mini_table.c File Reference
#include "upb/mini_table.h"
#include <inttypes.h>
#include <setjmp.h>
#include "upb/msg_internal.h"
#include "upb/upb.h"
#include "upb/port_def.inc"
Include dependency graph for mini_table.c:

Go to the source code of this file.

Classes

struct  upb_LayoutItem
 
struct  upb_LayoutItemVector
 
struct  upb_MtDataEncoderInternal
 
struct  upb_MtDecoder
 

Macros

#define kUpb_LayoutItem_IndexSentinel   ((uint16_t)-1)
 
#define UPB_COMBINE(rep, ty, idx)   (((rep << type_bits) | ty) << idx_bits) | idx
 

Enumerations

enum  {
  kUpb_EncodedValue_MinField = ' ', kUpb_EncodedValue_MaxField = 'K', kUpb_EncodedValue_MinModifier = 'L', kUpb_EncodedValue_MaxModifier = '[',
  kUpb_EncodedValue_End = '^', kUpb_EncodedValue_MinSkip = '_', kUpb_EncodedValue_MaxSkip = '~', kUpb_EncodedValue_OneofSeparator = '~',
  kUpb_EncodedValue_FieldSeparator = '|', kUpb_EncodedValue_MinOneofField = ' ', kUpb_EncodedValue_MaxOneofField = 'b'
}
 
enum  PresenceClass { kNoPresence = 0, kHasbitPresence = 1, kRequiredPresence = 2, kOneofBase = 3 }
 
enum  upb_EncodedFieldModifier { kUpb_EncodedFieldModifier_FlipPacked = 1 << 0, kUpb_EncodedFieldModifier_IsClosedEnum = 1 << 1, kUpb_EncodedFieldModifier_IsProto3Singular = 1 << 2, kUpb_EncodedFieldModifier_IsRequired = 1 << 3 }
 
enum  upb_EncodedType {
  kUpb_EncodedType_Double = 0, kUpb_EncodedType_Float = 1, kUpb_EncodedType_Fixed32 = 2, kUpb_EncodedType_Fixed64 = 3,
  kUpb_EncodedType_SFixed32 = 4, kUpb_EncodedType_SFixed64 = 5, kUpb_EncodedType_Int32 = 6, kUpb_EncodedType_UInt32 = 7,
  kUpb_EncodedType_SInt32 = 8, kUpb_EncodedType_Int64 = 9, kUpb_EncodedType_UInt64 = 10, kUpb_EncodedType_SInt64 = 11,
  kUpb_EncodedType_Enum = 12, kUpb_EncodedType_Bool = 13, kUpb_EncodedType_Bytes = 14, kUpb_EncodedType_String = 15,
  kUpb_EncodedType_Group = 16, kUpb_EncodedType_Message = 17, kUpb_EncodedType_RepeatedBase = 20
}
 
enum  upb_LayoutItemType { kUpb_LayoutItemType_OneofCase, kUpb_LayoutItemType_OneofField, kUpb_LayoutItemType_Field, kUpb_LayoutItemType_Max = kUpb_LayoutItemType_Field }
 

Functions

char upb_FromBase92 (uint8_t ch)
 
bool upb_IsTypePackable (upb_FieldType type)
 
upb_MiniTableupb_MiniTable_Build (const char *data, size_t len, upb_MiniTablePlatform platform, upb_Arena *arena, upb_Status *status)
 
upb_MiniTable_Enumupb_MiniTable_BuildEnum (const char *data, size_t len, upb_Arena *arena, upb_Status *status)
 
bool upb_MiniTable_BuildExtension (const char *data, size_t len, upb_MiniTable_Extension *ext, upb_MiniTable_Sub sub, upb_Status *status)
 
upb_MiniTableupb_MiniTable_BuildMapEntry (upb_FieldType key_type, upb_FieldType value_type, bool value_is_proto3_enum, upb_MiniTablePlatform platform, upb_Arena *arena)
 
upb_MiniTableupb_MiniTable_BuildMessageSet (upb_MiniTablePlatform platform, upb_Arena *arena)
 
upb_MiniTableupb_MiniTable_BuildWithBuf (const char *data, size_t len, upb_MiniTablePlatform platform, upb_Arena *arena, void **buf, size_t *buf_size, upb_Status *status)
 
static const char * upb_MiniTable_DecodeBase92Varint (upb_MtDecoder *d, const char *ptr, char first_ch, uint8_t min, uint8_t max, uint32_t *out_val)
 
static size_t upb_MiniTable_DivideRoundUp (size_t n, size_t d)
 
const upb_MiniTable_Fieldupb_MiniTable_FindFieldByNumber (const upb_MiniTable *table, uint32_t number)
 
static bool upb_MiniTable_HasSub (upb_MiniTable_Field *field, uint64_t msg_modifiers)
 
static void upb_MiniTable_SetField (upb_MtDecoder *d, uint8_t ch, upb_MiniTable_Field *field, uint64_t msg_modifiers, uint32_t *sub_count)
 
void upb_MiniTable_SetSubEnum (upb_MiniTable *table, upb_MiniTable_Field *field, const upb_MiniTable_Enum *sub)
 
void upb_MiniTable_SetSubMessage (upb_MiniTable *table, upb_MiniTable_Field *field, const upb_MiniTable *sub)
 
static void upb_MiniTable_SetTypeAndSub (upb_MiniTable_Field *field, upb_FieldType type, uint32_t *sub_count, uint64_t msg_modifiers)
 
static upb_MtDataEncoderInternalupb_MtDataEncoder_GetInternal (upb_MtDataEncoder *e, char *buf_start)
 
static char * upb_MtDataEncoder_Put (upb_MtDataEncoder *e, char *ptr, char ch)
 
static char * upb_MtDataEncoder_PutBase92Varint (upb_MtDataEncoder *e, char *ptr, uint32_t val, int min, int max)
 
char * upb_MtDataEncoder_PutField (upb_MtDataEncoder *e, char *ptr, upb_FieldType type, uint32_t field_num, uint64_t field_mod)
 
char * upb_MtDataEncoder_PutModifier (upb_MtDataEncoder *e, char *ptr, uint64_t mod)
 
char * upb_MtDataEncoder_PutOneofField (upb_MtDataEncoder *e, char *ptr, uint32_t field_num)
 
char * upb_MtDataEncoder_StartMessage (upb_MtDataEncoder *e, char *ptr, uint64_t msg_mod)
 
char * upb_MtDataEncoder_StartOneof (upb_MtDataEncoder *e, char *ptr)
 
size_t upb_MtDecoder_AlignOfRep (upb_FieldRep rep, upb_MiniTablePlatform platform)
 
static void upb_MtDecoder_AllocateSubs (upb_MtDecoder *d, uint32_t sub_count)
 
static void upb_MtDecoder_AssignHasbits (upb_MiniTable *ret)
 
static void upb_MtDecoder_AssignOffsets (upb_MtDecoder *d)
 
static void upb_MtDecoder_CheckOutOfMemory (upb_MtDecoder *d, const void *ptr)
 
int upb_MtDecoder_CompareFields (const void *_a, const void *_b)
 
static const char * upb_MtDecoder_DecodeOneofField (upb_MtDecoder *d, const char *ptr, char first_ch, upb_LayoutItem *item)
 
static const char * upb_MtDecoder_DecodeOneofs (upb_MtDecoder *d, const char *ptr)
 
static UPB_NORETURN void upb_MtDecoder_ErrorFormat (upb_MtDecoder *d, const char *fmt,...)
 
static bool upb_MtDecoder_FieldIsPackable (upb_MiniTable_Field *field)
 
static void upb_MtDecoder_ModifyField (upb_MtDecoder *d, uint32_t message_modifiers, uint32_t field_modifiers, upb_MiniTable_Field *field)
 
static void upb_MtDecoder_Parse (upb_MtDecoder *d, const char *ptr, size_t len, void *fields, size_t field_size, uint16_t *field_count, uint32_t *sub_count)
 
static void upb_MtDecoder_ParseMessage (upb_MtDecoder *d, const char *data, size_t len)
 
static const char * upb_MtDecoder_ParseModifier (upb_MtDecoder *d, const char *ptr, char first_ch, upb_MiniTable_Field *last_field, uint64_t *msg_modifiers)
 
size_t upb_MtDecoder_Place (upb_MtDecoder *d, upb_FieldRep rep)
 
static void upb_MtDecoder_PushItem (upb_MtDecoder *d, upb_LayoutItem item)
 
static void upb_MtDecoder_PushOneof (upb_MtDecoder *d, upb_LayoutItem item)
 
size_t upb_MtDecoder_SizeOfRep (upb_FieldRep rep, upb_MiniTablePlatform platform)
 
static bool upb_MtDecoder_SortLayoutItems (upb_MtDecoder *d)
 
char upb_ToBase92 (int8_t ch)
 

Macro Definition Documentation

◆ kUpb_LayoutItem_IndexSentinel

#define kUpb_LayoutItem_IndexSentinel   ((uint16_t)-1)

Definition at line 304 of file mini_table.c.

◆ UPB_COMBINE

#define UPB_COMBINE (   rep,
  ty,
  idx 
)    (((rep << type_bits) | ty) << idx_bits) | idx

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
kUpb_EncodedValue_MinField 
kUpb_EncodedValue_MaxField 
kUpb_EncodedValue_MinModifier 
kUpb_EncodedValue_MaxModifier 
kUpb_EncodedValue_End 
kUpb_EncodedValue_MinSkip 
kUpb_EncodedValue_MaxSkip 
kUpb_EncodedValue_OneofSeparator 
kUpb_EncodedValue_FieldSeparator 
kUpb_EncodedValue_MinOneofField 
kUpb_EncodedValue_MaxOneofField 

Definition at line 70 of file mini_table.c.

◆ PresenceClass

Enumerator
kNoPresence 
kHasbitPresence 
kRequiredPresence 
kOneofBase 

Definition at line 348 of file mini_table.c.

◆ upb_EncodedFieldModifier

Enumerator
kUpb_EncodedFieldModifier_FlipPacked 
kUpb_EncodedFieldModifier_IsClosedEnum 
kUpb_EncodedFieldModifier_IsProto3Singular 
kUpb_EncodedFieldModifier_IsRequired 

Definition at line 62 of file mini_table.c.

◆ upb_EncodedType

Enumerator
kUpb_EncodedType_Double 
kUpb_EncodedType_Float 
kUpb_EncodedType_Fixed32 
kUpb_EncodedType_Fixed64 
kUpb_EncodedType_SFixed32 
kUpb_EncodedType_SFixed64 
kUpb_EncodedType_Int32 
kUpb_EncodedType_UInt32 
kUpb_EncodedType_SInt32 
kUpb_EncodedType_Int64 
kUpb_EncodedType_UInt64 
kUpb_EncodedType_SInt64 
kUpb_EncodedType_Enum 
kUpb_EncodedType_Bool 
kUpb_EncodedType_Bytes 
kUpb_EncodedType_String 
kUpb_EncodedType_Group 
kUpb_EncodedType_Message 
kUpb_EncodedType_RepeatedBase 

Definition at line 39 of file mini_table.c.

◆ upb_LayoutItemType

Data decoder

Enumerator
kUpb_LayoutItemType_OneofCase 
kUpb_LayoutItemType_OneofField 
kUpb_LayoutItemType_Field 
kUpb_LayoutItemType_Max 

Definition at line 296 of file mini_table.c.

Function Documentation

◆ upb_FromBase92()

char upb_FromBase92 ( uint8_t  ch)

Definition at line 99 of file mini_table.c.

◆ upb_IsTypePackable()

bool upb_IsTypePackable ( upb_FieldType  type)

Definition at line 113 of file mini_table.c.

◆ upb_MiniTable_Build()

upb_MiniTable* upb_MiniTable_Build ( const char *  data,
size_t  len,
upb_MiniTablePlatform  platform,
upb_Arena arena,
upb_Status status 
)

Definition at line 1038 of file mini_table.c.

◆ upb_MiniTable_BuildEnum()

upb_MiniTable_Enum* upb_MiniTable_BuildEnum ( const char *  data,
size_t  len,
upb_Arena arena,
upb_Status status 
)

Definition at line 971 of file mini_table.c.

◆ upb_MiniTable_BuildExtension()

bool upb_MiniTable_BuildExtension ( const char *  data,
size_t  len,
upb_MiniTable_Extension ext,
upb_MiniTable_Sub  sub,
upb_Status status 
)

Definition at line 1018 of file mini_table.c.

◆ upb_MiniTable_BuildMapEntry()

upb_MiniTable* upb_MiniTable_BuildMapEntry ( upb_FieldType  key_type,
upb_FieldType  value_type,
bool  value_is_proto3_enum,
upb_MiniTablePlatform  platform,
upb_Arena arena 
)

Definition at line 928 of file mini_table.c.

◆ upb_MiniTable_BuildMessageSet()

upb_MiniTable* upb_MiniTable_BuildMessageSet ( upb_MiniTablePlatform  platform,
upb_Arena arena 
)

Definition at line 914 of file mini_table.c.

◆ upb_MiniTable_BuildWithBuf()

upb_MiniTable* upb_MiniTable_BuildWithBuf ( const char *  data,
size_t  len,
upb_MiniTablePlatform  platform,
upb_Arena arena,
void **  buf,
size_t *  buf_size,
upb_Status status 
)

Definition at line 871 of file mini_table.c.

◆ upb_MiniTable_DecodeBase92Varint()

static const char* upb_MiniTable_DecodeBase92Varint ( upb_MtDecoder d,
const char *  ptr,
char  first_ch,
uint8_t  min,
uint8_t  max,
uint32_t out_val 
)
static

Definition at line 358 of file mini_table.c.

◆ upb_MiniTable_DivideRoundUp()

static size_t upb_MiniTable_DivideRoundUp ( size_t  n,
size_t  d 
)
static

Definition at line 778 of file mini_table.c.

◆ upb_MiniTable_FindFieldByNumber()

const upb_MiniTable_Field* upb_MiniTable_FindFieldByNumber ( const upb_MiniTable table,
uint32_t  number 
)

Definition at line 282 of file mini_table.c.

◆ upb_MiniTable_HasSub()

static bool upb_MiniTable_HasSub ( upb_MiniTable_Field field,
uint64_t  msg_modifiers 
)
static

Definition at line 381 of file mini_table.c.

◆ upb_MiniTable_SetField()

static void upb_MiniTable_SetField ( upb_MtDecoder d,
uint8_t  ch,
upb_MiniTable_Field field,
uint64_t  msg_modifiers,
uint32_t sub_count 
)
static

Definition at line 419 of file mini_table.c.

◆ upb_MiniTable_SetSubEnum()

void upb_MiniTable_SetSubEnum ( upb_MiniTable table,
upb_MiniTable_Field field,
const upb_MiniTable_Enum sub 
)

Definition at line 1063 of file mini_table.c.

◆ upb_MiniTable_SetSubMessage()

void upb_MiniTable_SetSubMessage ( upb_MiniTable table,
upb_MiniTable_Field field,
const upb_MiniTable sub 
)

Definition at line 1049 of file mini_table.c.

◆ upb_MiniTable_SetTypeAndSub()

static void upb_MiniTable_SetTypeAndSub ( upb_MiniTable_Field field,
upb_FieldType  type,
uint32_t sub_count,
uint64_t  msg_modifiers 
)
static

Definition at line 403 of file mini_table.c.

◆ upb_MtDataEncoder_GetInternal()

static upb_MtDataEncoderInternal* upb_MtDataEncoder_GetInternal ( upb_MtDataEncoder e,
char *  buf_start 
)
static

Definition at line 137 of file mini_table.c.

◆ upb_MtDataEncoder_Put()

static char* upb_MtDataEncoder_Put ( upb_MtDataEncoder e,
char *  ptr,
char  ch 
)
static

Definition at line 144 of file mini_table.c.

◆ upb_MtDataEncoder_PutBase92Varint()

static char* upb_MtDataEncoder_PutBase92Varint ( upb_MtDataEncoder e,
char *  ptr,
uint32_t  val,
int  min,
int  max 
)
static

Definition at line 152 of file mini_table.c.

◆ upb_MtDataEncoder_PutField()

char* upb_MtDataEncoder_PutField ( upb_MtDataEncoder e,
char *  ptr,
upb_FieldType  type,
uint32_t  field_num,
uint64_t  field_mod 
)

Definition at line 185 of file mini_table.c.

◆ upb_MtDataEncoder_PutModifier()

char* upb_MtDataEncoder_PutModifier ( upb_MtDataEncoder e,
char *  ptr,
uint64_t  mod 
)

Definition at line 166 of file mini_table.c.

◆ upb_MtDataEncoder_PutOneofField()

char* upb_MtDataEncoder_PutOneofField ( upb_MtDataEncoder e,
char *  ptr,
uint32_t  field_num 
)

Definition at line 268 of file mini_table.c.

◆ upb_MtDataEncoder_StartMessage()

char* upb_MtDataEncoder_StartMessage ( upb_MtDataEncoder e,
char *  ptr,
uint64_t  msg_mod 
)

Definition at line 176 of file mini_table.c.

◆ upb_MtDataEncoder_StartOneof()

char* upb_MtDataEncoder_StartOneof ( upb_MtDataEncoder e,
char *  ptr 
)

Definition at line 256 of file mini_table.c.

◆ upb_MtDecoder_AlignOfRep()

size_t upb_MtDecoder_AlignOfRep ( upb_FieldRep  rep,
upb_MiniTablePlatform  platform 
)

Definition at line 564 of file mini_table.c.

◆ upb_MtDecoder_AllocateSubs()

static void upb_MtDecoder_AllocateSubs ( upb_MtDecoder d,
uint32_t  sub_count 
)
static

Definition at line 664 of file mini_table.c.

◆ upb_MtDecoder_AssignHasbits()

static void upb_MtDecoder_AssignHasbits ( upb_MiniTable ret)
static

Definition at line 782 of file mini_table.c.

◆ upb_MtDecoder_AssignOffsets()

static void upb_MtDecoder_AssignOffsets ( upb_MtDecoder d)
static

Definition at line 816 of file mini_table.c.

◆ upb_MtDecoder_CheckOutOfMemory()

static void upb_MtDecoder_CheckOutOfMemory ( upb_MtDecoder d,
const void *  ptr 
)
static

Definition at line 343 of file mini_table.c.

◆ upb_MtDecoder_CompareFields()

int upb_MtDecoder_CompareFields ( const void *  _a,
const void *  _b 
)

Definition at line 737 of file mini_table.c.

◆ upb_MtDecoder_DecodeOneofField()

static const char* upb_MtDecoder_DecodeOneofField ( upb_MtDecoder d,
const char *  ptr,
char  first_ch,
upb_LayoutItem item 
)
static

Definition at line 582 of file mini_table.c.

◆ upb_MtDecoder_DecodeOneofs()

static const char* upb_MtDecoder_DecodeOneofs ( upb_MtDecoder d,
const char *  ptr 
)
static

Definition at line 621 of file mini_table.c.

◆ upb_MtDecoder_ErrorFormat()

static UPB_NORETURN void upb_MtDecoder_ErrorFormat ( upb_MtDecoder d,
const char *  fmt,
  ... 
)
static

Definition at line 333 of file mini_table.c.

◆ upb_MtDecoder_FieldIsPackable()

static bool upb_MtDecoder_FieldIsPackable ( upb_MiniTable_Field field)
static

Definition at line 398 of file mini_table.c.

◆ upb_MtDecoder_ModifyField()

static void upb_MtDecoder_ModifyField ( upb_MtDecoder d,
uint32_t  message_modifiers,
uint32_t  field_modifiers,
upb_MiniTable_Field field 
)
static

Definition at line 484 of file mini_table.c.

◆ upb_MtDecoder_Parse()

static void upb_MtDecoder_Parse ( upb_MtDecoder d,
const char *  ptr,
size_t  len,
void *  fields,
size_t  field_size,
uint16_t field_count,
uint32_t sub_count 
)
static

Definition at line 670 of file mini_table.c.

◆ upb_MtDecoder_ParseMessage()

static void upb_MtDecoder_ParseMessage ( upb_MtDecoder d,
const char *  data,
size_t  len 
)
static

Definition at line 718 of file mini_table.c.

◆ upb_MtDecoder_ParseModifier()

static const char* upb_MtDecoder_ParseModifier ( upb_MtDecoder d,
const char *  ptr,
char  first_ch,
upb_MiniTable_Field last_field,
uint64_t msg_modifiers 
)
static

Definition at line 643 of file mini_table.c.

◆ upb_MtDecoder_Place()

size_t upb_MtDecoder_Place ( upb_MtDecoder d,
upb_FieldRep  rep 
)

Definition at line 808 of file mini_table.c.

◆ upb_MtDecoder_PushItem()

static void upb_MtDecoder_PushItem ( upb_MtDecoder d,
upb_LayoutItem  item 
)
static

Definition at line 519 of file mini_table.c.

◆ upb_MtDecoder_PushOneof()

static void upb_MtDecoder_PushOneof ( upb_MtDecoder d,
upb_LayoutItem  item 
)
static

Definition at line 529 of file mini_table.c.

◆ upb_MtDecoder_SizeOfRep()

size_t upb_MtDecoder_SizeOfRep ( upb_FieldRep  rep,
upb_MiniTablePlatform  platform 
)

Definition at line 546 of file mini_table.c.

◆ upb_MtDecoder_SortLayoutItems()

static bool upb_MtDecoder_SortLayoutItems ( upb_MtDecoder d)
static

Definition at line 758 of file mini_table.c.

◆ upb_ToBase92()

char upb_ToBase92 ( int8_t  ch)

Definition at line 84 of file mini_table.c.



grpc
Author(s):
autogenerated on Fri May 16 2025 03:01:23