These are more type safe, and more clearly distinguish between a
raw message and serialized data.
This also defines a macro to create new opaque pointer types, and
switches `RawArena` to using it.
PiperOrigin-RevId: 552957136
The next in a series of CLs to split upb/BUILD into subdirs.
Create mem/internal/
Delete the deprecated upb/arena.h and upb/alloc.h stub headers
PiperOrigin-RevId: 552864952
This CL sets up the basic plumbing end-to-end for singular message fields.
We add skeletonized support for `Proxied` messages. This is done
by creating structs for $Msg$View and $Msg$Mut, and providing
stubbed impls.
PiperOrigin-RevId: 552609955
Fixes a class of flaky test failures observed only in the FFI implementation due to garbage collection in between calls to an accessors for a frozen field.
Closes#13420
COPYBARA_INTEGRATE_REVIEW=https://github.com/protocolbuffers/protobuf/pull/13420 from protocolbuffers:rub 0ea91165fb
PiperOrigin-RevId: 552602026
This will make the text format parser reject inputs that have a nesting depth
greater than 150. We will soon lower this number down to 100 for consistency
with other implementations.
For use cases that rely on parsing deeply nested text protos, it is possible to
create a Parser with a custom recursion limit like this:
`TextFormat.Parser.newBuilder().setRecursionLimit(i).build()`.
PiperOrigin-RevId: 552543574
`ConsumeFieldValue()` has some special logic for handling Any fields, but this
does not seem to be necessary since `mergeField` can handle Any fields on its
own. This CL therefore deletes the Any-related logic from
`ConsumeFieldValue()`.
PiperOrigin-RevId: 552540364
When build a FileDescriptorProto into pool, FieldDescriptorProto.type may not set if type_name is set. Runtime Change. To make copybara happy, tests will be added in a separate change
PiperOrigin-RevId: 552521056
On 32-bit targets (including WASM), the base message pointer was aligned to 4 instead of 8, causing reads to 8-byte fields to fail, since TypedArray does not support unaligned reads.
The pointer was 4-byte aligned because upb adds the size of its "internal" pointer before returning the `upb_Message*`. We should probably stop doing this, and instead have the MiniTable offsets reflect their full and true offset from the pointer returned by `malloc()`.
PiperOrigin-RevId: 552486609
- Separate per message options out of PerFieldOptions. We don't need to query
these once per field, and they might be useful even when no fields exist.
- Move FastEv check for !uses_codegen into generated_message_tctable_gen.cc
instead of checking for function names. It is more robust this way.
- Use a variant in FastFieldInfo to make it clear which fields belong to each alternative, and add accessors to easily check for the alternatives.
PiperOrigin-RevId: 551234589