|
|
|
@ -56,6 +56,8 @@ typedef enum { |
|
|
|
|
kUpb_ExtMode_IsMapEntry = 4, |
|
|
|
|
} upb_ExtMode; |
|
|
|
|
|
|
|
|
|
// LINT.IfChange(mini_table_layout)
|
|
|
|
|
|
|
|
|
|
// upb_MiniTable represents the memory layout of a given upb_MessageDef.
|
|
|
|
|
// The members are public so generated code can initialize them,
|
|
|
|
|
// but users MUST NOT directly read or write any of its members.
|
|
|
|
@ -79,6 +81,8 @@ struct upb_MiniTable { |
|
|
|
|
_upb_FastTable_Entry fasttable[]; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
// LINT.ThenChange(//depot/google3/third_party/upb/js/impl/upb_bits/mini_table.ts:presence_logic)
|
|
|
|
|
|
|
|
|
|
// Map entries aren't actually stored for map fields, they are only used during
|
|
|
|
|
// parsing. For parsing, it helps a lot if all map entry messages have the same
|
|
|
|
|
// layout. The layout code in mini_table/decode.c will ensure that all map
|
|
|
|
|