#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"
upb_EncodedType;
upb_EncodedFieldModifier;
enum { … };
char upb_ToBase92(int8_t ch) { … }
char upb_FromBase92(uint8_t ch) { … }
bool upb_IsTypePackable(upb_FieldType type) { … }
upb_MtDataEncoderInternal_EnumState;
upb_MtDataEncoderInternal_MsgState;
upb_MtDataEncoderInternal;
static upb_MtDataEncoderInternal* upb_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_PutModifier(upb_MtDataEncoder* e, char* ptr,
uint64_t mod) { … }
char* upb_MtDataEncoder_StartMessage(upb_MtDataEncoder* e, char* ptr,
uint64_t msg_mod) { … }
char* upb_MtDataEncoder_PutField(upb_MtDataEncoder* e, char* ptr,
upb_FieldType type, uint32_t field_num,
uint64_t field_mod) { … }
char* upb_MtDataEncoder_StartOneof(upb_MtDataEncoder* e, char* ptr) { … }
char* upb_MtDataEncoder_PutOneofField(upb_MtDataEncoder* e, char* ptr,
uint32_t field_num) { … }
void upb_MtDataEncoder_StartEnum(upb_MtDataEncoder* e) { … }
static char* upb_MtDataEncoder_FlushDenseEnumMask(upb_MtDataEncoder* e,
char* ptr) { … }
char* upb_MtDataEncoder_PutEnumValue(upb_MtDataEncoder* e, char* ptr,
uint32_t val) { … }
char* upb_MtDataEncoder_EndEnum(upb_MtDataEncoder* e, char* ptr) { … }
const upb_MiniTable_Field* upb_MiniTable_FindFieldByNumber(
const upb_MiniTable* table, uint32_t number) { … }
upb_LayoutItemType;
#define kUpb_LayoutItem_IndexSentinel …
upb_LayoutItem;
upb_LayoutItemVector;
upb_MtDecoder;
UPB_PRINTF(2, 3)
UPB_NORETURN static void upb_MtDecoder_ErrorFormat(upb_MtDecoder* d,
const char* fmt, ...) { … }
static void upb_MtDecoder_CheckOutOfMemory(upb_MtDecoder* d, const void* ptr) { … }
enum PresenceClass { … };
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 bool upb_MiniTable_HasSub(upb_MiniTable_Field* field,
uint64_t msg_modifiers) { … }
static bool upb_MtDecoder_FieldIsPackable(upb_MiniTable_Field* field) { … }
static void upb_MiniTable_SetTypeAndSub(upb_MiniTable_Field* field,
upb_FieldType type, uint32_t* sub_count,
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) { … }
static void upb_MtDecoder_ModifyField(upb_MtDecoder* d,
uint32_t message_modifiers,
uint32_t field_modifiers,
upb_MiniTable_Field* field) { … }
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) { … }
size_t upb_MtDecoder_AlignOfRep(upb_FieldRep rep,
upb_MiniTablePlatform platform) { … }
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 const char* upb_MtDecoder_ParseModifier(upb_MtDecoder* d,
const char* ptr, char first_ch,
upb_MiniTable_Field* last_field,
uint64_t* msg_modifiers) { … }
static void upb_MtDecoder_AllocateSubs(upb_MtDecoder* d, uint32_t sub_count) { … }
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) { … }
int upb_MtDecoder_CompareFields(const void* _a, const void* _b) { … }
static bool upb_MtDecoder_SortLayoutItems(upb_MtDecoder* d) { … }
static size_t upb_MiniTable_DivideRoundUp(size_t n, size_t d) { … }
static void upb_MtDecoder_AssignHasbits(upb_MiniTable* ret) { … }
size_t upb_MtDecoder_Place(upb_MtDecoder* d, upb_FieldRep rep) { … }
static void upb_MtDecoder_AssignOffsets(upb_MtDecoder* d) { … }
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) { … }
upb_MiniTable* upb_MiniTable_BuildMessageSet(upb_MiniTablePlatform platform,
upb_Arena* arena) { … }
upb_MiniTable* upb_MiniTable_BuildMapEntry(upb_FieldType key_type,
upb_FieldType value_type,
bool value_is_proto3_enum,
upb_MiniTablePlatform platform,
upb_Arena* arena) { … }
static bool upb_MiniTable_BuildEnumValue(upb_MtDecoder* d,
upb_MiniTable_Enum* table,
uint32_t val, upb_Arena* arena) { … }
upb_MiniTable_Enum* upb_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_MiniTable* upb_MiniTable_Build(const char* data, size_t len,
upb_MiniTablePlatform platform,
upb_Arena* arena, upb_Status* status) { … }
void upb_MiniTable_SetSubMessage(upb_MiniTable* table,
upb_MiniTable_Field* field,
const upb_MiniTable* sub) { … }
void upb_MiniTable_SetSubEnum(upb_MiniTable* table, upb_MiniTable_Field* field,
const upb_MiniTable_Enum* sub) { … }