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
This will allow users such as Kythe to use the same runtime as the default toolchain in their own proto_lang_toolchain definitions.
PiperOrigin-RevId: 565438071
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
Cloud C++ has a CI test that runs against protobuf head and this broke with one
of my recent changes. This change fixes the problem by restoring the previous
visibility entry that was changed.
I'm a little bit surprised that this works, since `@upb` doesn't even exist in
our workspace anymore. It appears that Bazel is happy to ignore that in our
workspace where it doesn't exist, and still respect it in other workspaces
where it does exist.
PiperOrigin-RevId: 565093972