Prior to this CL, upb MiniDescriptors only allowed per-message control over UTF-8. This CL adds a new field-level modifier to upb MiniDescriptors that can flip a field to the opposite of the message default, like we already have for packed, allowing per-field control over UTF-8 validation.
PiperOrigin-RevId: 566638331
For LITE messages we append the type name to the data, avoiding an
indirection and a relocation.
For descriptor messages we mark them as such and have a secondary vtable. This
way we avoid having to put those pointers on each message ClassData. We save in
data size and relocations. If in the future we determine that the extra jump is
costly we can inline the relevant descriptor method pointers into `ClassData`.
PiperOrigin-RevId: 565775188
Unfortunately in OSS with Bazel it appears that we must include this empty file, otherwise we get compile errors. More info in: b/300637173
PiperOrigin-RevId: 565699708
We do not want to repeatedly check `using_sso` when iterating over an array. Hence instead of using `Get(i) / Mutable(i)` from base class, we request a pointer to the underlying array (thus, reducing number of checks from N to 1).
Additionally, there is a loop with a `Delete` call - updated it to use `CommonHandler`, so that it reduces code bloat.
PiperOrigin-RevId: 565665669
The new rules are:
- `upb_minitable_proto_library()`: contains the MiniTables only
- `upb_c_proto_library()`: Contains the C API. Depends on the MiniTables
This involved splitting upb code generation into two separate aspects, one for MiniTables and one for the C API.
PiperOrigin-RevId: 565518070
Change PYUPB_DESCRIPTOR_MODULE to "google.protobuf.descriptor_pb2" because protobuf python is using google.protobuf.descriptor_pb2 everywhere
Also check import result of PYUPB_DESCRIPTOR_MODULE
PiperOrigin-RevId: 565409795