The OSReadLittleInt64 function as defined by Apple reduces down to:
`return *(volatile uint64_t *)((uintptr_t)base + byteOffset);`
which means we are type-punning using a cast. On ARMv7 and other aligned architectures this can cause crashes.
Minimal example: https://gist.github.com/dmaclach/b10b0a71ae614d304c067cb9bd264336Fixes#6679
The code in question hasn't change in a long time so the cause of
https://github.com/firebase/firebase-ios-sdk/issues/3851 still appears to be
an Xcode 11 clang change/bug; but this does appear to be slightly better
code for the work being done.
Cleanup along the way for #6679
I'm not exactly sure why, but this fixes the failing Bazel presubmit
test. Using the most recent version seems like a good idea anyway so
that we can make sure we're compatible with any new Bazel changes.
* Fix binary compatibility in FieldCodec factory messages
* Make default value parameter for current factories required
* Route old methods through default value overloads
This reverts commit 7f84a94366.
This is just temporary. Eventually, we still want to roll forward this
change. Some users are complaining they need more time to clean up their
code.
This should fix issue #6186. I also had to remove a couple unnecessary
const keywords in map_util.h because the no_warning_test was showing
errors about those.
* Make php message class final
Because proto messages are just data object, they should not be mocked.
Explicitly make them final to avoid accidental usage.
* Update generated descriptors
* php: Fixed php notices for unknown enum indices
* php: Fixed formatting of Duration
This fixes:
* Missing nanoseconds. The nanoseconds where divided as a float and
implicitly converted to a string before being passed to bcadd.
This can result in a float formatted in scientific/exponential notation,
which bcmath doesn't understand.
* Durations are supposed to be formatted without trailing zeroes.
We found that some code depended on the behavior of appending to the
string without clearing it first. The comments in json_util.h also make
it appear that the appending behavior is intentional, so I think we need
to stick with the old behavior.
This reverts commit 3cbe45a4b5.