Message accessors will return null when when the field is not
set, so this should be reflected in the PhpDoc.
Also updated the code generator for the well-known types to reflect
the edits made in https://github.com/protocolbuffers/protobuf/pull/8105.
Also explicitly check for upb_msg_has() in the oneof accessor, so
we are not implicitly relying on unset message fields returning NULL
at the upb level.
It seems that updating shallow Git clones is expensive, and as a result
Homebrew recently started refusing to update shallow clones (see
https://github.com/Homebrew/discussions/discussions/226). This commit
tries to fix the problem by making these repos into full clones before
running "brew update".
I also came across another error about there being a conflicting version
of pip3 in /usr/local. I suspect that is related to the other Python
binaries that the script has to delete, so I added pip3 to the list and
that seemed to solve the problem.
* Port for php8
* Port php c extension for php8
* Update composer.json
* Drop php7.0 support
* Update phpunit for php7.1 in c extension test
* Add back support for php7.0
* Add badge for php8 continuous build
It includes a bunch of other files including a lot of macros which can
reduce the namespace available for actual protobuf.
For example, create a protobuf with a member called SIGSEGV. Since
macros cannot be namespaced in C++ this results in code which cannot be
compiled.
Fix this by just directly including endian.h
This solves the following error in gcc:
explicitly defaulted function cannot be declared 'constexpr' because the implicit declaration is not 'constexpr'
The param was typed as `object` which is invalid as when items are set in the container the key passes through `checkKey` where it enforces the key must be various classes of integer, bool or string. Thus I have replaced it with a union type (in future this can be a proper PHP level typehint, but for now only doctype)
* Work around `-Werror=type-limits` under gcc 10.2
This is an error when tag is greater than 128 under gcc 10.2: `if (tag < 128) return *ptr == tag;`
It's an error even though the comparison occurs in a branch of code we know won't be taken. See https://godbolt.org/z/1eaP86
This works around the problem by casting `tag` to the same type as `*ptr`.
This commit fixes some minor issues that came up when I tried to
integrate changes from Git into Google's internal codebase:
- Include stubs/strutil.h for access to Split() helper function
- Use emplace() instead of insert() so that the code still works if
we're working with a string_view instead of a string