15#ifndef UPB_MESSAGE_INTERNAL_MESSAGE_H_
16#define UPB_MESSAGE_INTERNAL_MESSAGE_H_
61 return (
ptr.ptr != 0) && ((
ptr.ptr & 1) == 0);
65 return (
ptr.ptr != 0) && ((
ptr.ptr & 2) == 2);
87 ptr.
ptr = (uintptr_t)e | 1;
106 ptr.
ptr = (uintptr_t)sv | 2;
118#ifdef UPB_TRACING_ENABLED
121UPB_API void upb_Message_SetNewMessageTraceHandler(
129#ifdef UPB_TRACING_ENABLED
130 upb_Message_LogNewMessage(m, a);
139 memset(msg, 0, size);
164 const char* alias_base) {
170 if (in && in->size) {
180 if (data != alias_base && existing->
data + existing->
size == data) {
181 existing->
size += len;
204#define kUpb_Message_UnknownBegin 0
205#define kUpb_Message_ExtensionBegin 0
212 while (i < in->size) {
240 while (i < in->size) {
264 if (!in)
return false;
266 uint32_t size = in->size;
#define UPB_UNLIKELY(x)
Definition def.inc:265
#define UPB_ASSUME(expr)
Definition def.inc:319
#define UPB_ASSERT(expr)
Definition def.inc:329
#define UPB_PRIVATE(x)
Definition def.inc:393
#define UPB_NOINLINE
Definition def.inc:289
#define UPB_INLINE
Definition def.inc:144
#define UPB_API
Definition def.inc:162
UPB_API_INLINE void * upb_Arena_Malloc(struct upb_Arena *a, size_t size)
Definition arena.h:65
UPB_INLINE bool UPB_PRIVATE _upb_Extension_IsEmpty(const upb_Extension *ext)
Definition extension.h:53
UPB_INLINE bool upb_Message_HasUnknown(const struct upb_Message *msg)
Definition message.h:227
bool UPB_PRIVATE _upb_Message_ReserveSlot(struct upb_Message *msg, upb_Arena *arena)
UPB_INLINE bool upb_Message_NextExtension(const struct upb_Message *msg, const upb_MiniTableExtension **out_e, upb_MessageValue *out_v, uintptr_t *iter)
Definition message.h:233
UPB_INLINE bool upb_TaggedAuxPtr_IsUnknownAliased(upb_TaggedAuxPtr ptr)
Definition message.h:64
UPB_INLINE upb_TaggedAuxPtr upb_TaggedAuxPtr_MakeExtension(const upb_Extension *e)
Definition message.h:85
const float kUpb_FltInfinity
UPB_NOINLINE bool UPB_PRIVATE _upb_Message_AddUnknownSlowPath(struct upb_Message *msg, const char *data, size_t len, upb_Arena *arena, bool alias)
#define kUpb_Message_UnknownBegin
Definition message.h:204
UPB_INLINE bool upb_TaggedAuxPtr_IsExtension(upb_TaggedAuxPtr ptr)
Definition message.h:56
UPB_INLINE bool upb_TaggedAuxPtr_IsNull(upb_TaggedAuxPtr ptr)
Definition message.h:52
void _upb_Message_DiscardUnknown_shallow(struct upb_Message *msg)
struct upb_TaggedAuxPtr upb_TaggedAuxPtr
bool UPB_PRIVATE _upb_Message_AddUnknownV(struct upb_Message *msg, upb_Arena *arena, upb_StringView data[], size_t count)
UPB_INLINE bool UPB_PRIVATE _upb_Message_AddUnknown(struct upb_Message *msg, const char *data, size_t len, upb_Arena *arena, const char *alias_base)
Definition message.h:160
UPB_INLINE upb_TaggedAuxPtr upb_TaggedAuxPtr_MakeUnknownData(const upb_StringView *sv)
Definition message.h:95
UPB_INLINE bool UPB_PRIVATE _upb_Message_NextExtensionReverse(const struct upb_Message *msg, const upb_MiniTableExtension **out_e, upb_MessageValue *out_v, uintptr_t *iter)
Definition message.h:260
UPB_INLINE upb_TaggedAuxPtr upb_TaggedAuxPtr_MakeUnknownDataAliased(const upb_StringView *sv)
Definition message.h:104
struct upb_Message_Internal upb_Message_Internal
UPB_INLINE bool upb_TaggedAuxPtr_IsUnknown(upb_TaggedAuxPtr ptr)
Definition message.h:60
UPB_INLINE bool upb_Message_NextUnknown(const struct upb_Message *msg, upb_StringView *data, uintptr_t *iter)
Definition message.h:207
UPB_INLINE upb_StringView * upb_TaggedAuxPtr_UnknownData(upb_TaggedAuxPtr ptr)
Definition message.h:73
const double kUpb_Infinity
UPB_INLINE upb_TaggedAuxPtr upb_TaggedAuxPtr_Null(void)
Definition message.h:78
UPB_INLINE upb_Extension * upb_TaggedAuxPtr_Extension(upb_TaggedAuxPtr ptr)
Definition message.h:68
UPB_INLINE struct upb_Message * _upb_Message_New(const upb_MiniTable *m, upb_Arena *a)
Definition message.h:126
@ kUpb_Message_Align
Definition message.h:46
UPB_INLINE void UPB_PRIVATE upb_MiniTable_CheckInvariants(const struct upb_MiniTable *mt)
Definition message.h:85
Definition extension.h:32
const upb_MiniTableExtension * ext
Definition extension.h:33
upb_MessageValue data
Definition extension.h:34
upb_TaggedAuxPtr aux_data[]
Definition message.h:115
uint32_t capacity
Definition message.h:113
uint32_t size
Definition message.h:112
Definition extension.h:21
const upb_MiniTableSubInternal * UPB_PRIVATE(subs)
Definition string_view.h:23
const char * data
Definition string_view.h:24
size_t size
Definition string_view.h:25
uintptr_t ptr
Definition message.h:49
UPB_API_INLINE bool upb_Message_IsFrozen(const struct upb_Message *msg)
Definition types.h:34
UPB_INLINE struct upb_Message_Internal *UPB_PRIVATE _upb_Message_GetInternal(const struct upb_Message *msg)
Definition types.h:38