This makes the loop a bit easier to read. It is now clear which conditions
are checked where, and the use of "continue" avoids some indentation.
This is also getting rid of the lambda in ListenerCanHandle.
All checks are performed in the same order as before.
The only change is the removal of a main thread assert when we check
the event message in the spot where the message is not eUnidentifiedEvent.
Differential Revision: https://phabricator.services.mozilla.com/D178598
This help avoid this unecessary indirection which is ManagedTree.
And hopefully this may help simplify "expanded" and "focused" data
which is currently stored in redux but rather looks like something
that belongs to this React component's state.
Differential Revision: https://phabricator.services.mozilla.com/D177066
Currently the video frame pool used to manage hardware-accelerated
buffers for FFmpeg only supports VAAPI. Extend it to support V4L2 by
adding a new overload of GetVideoFrameSurface which takes an
AVDRMFrameDescriptor (which wraps a DRM-PRIME buffer handle). The
AVDRMFrameDescriptor is converted to a VADRMPRIMESurfaceDescriptor so we
can use the existing machinery in DMABufSurface and avoid duplication
there.
This depends on the drm_fourcc.h header from libdrm, I use the vendored
version of libdrm instead of adding a system dependency.
Differential Revision: https://phabricator.services.mozilla.com/D178349
This makes things easier later as the rounding can be done as part of a
conversion step before checking whether the final value is valid.
Depends on D178529
Differential Revision: https://phabricator.services.mozilla.com/D178530
This check is problematic because gcMaxNurseryBytes can be changed afterwards
to make the current value of nurseryFreeThresholdForIdleCollection_ invalid by
this measure. Also, as with nursery size parameters, the caller doesn't
necessarily know what the max nursery size is when setting this parameter.
Invalid values do not change behaviour since belowBytesThreshold will always
come out as true in Nursery::isNearlyFull. Therefore we should just remove
this check.
(And this is all moot anyway because this parameter is never changed anywhere).
Depends on D178528
Differential Revision: https://phabricator.services.mozilla.com/D178529
Currently we prevent setting a new minimum value that's greater than the
current maximum value and vice versa.
This is problematic because the caller may not know the current values. For
example, they may want to set both min and max to values that are valid with
respect to each other but not with resepect to existing values. (This is caused
by the fact that the API only allows setting one value at a time but that's a
larger issue.)
Instead, handle this the way we do for all other parmeters. When setting a new
value that invalidates an invariant with repsect to another parmeter, adjust
that other parameter to maintain the invariant.
Differential Revision: https://phabricator.services.mozilla.com/D178527
Some of these are duplicated, for example when two parameters need to be
checked against each other. It's easier to define them all in once place and
then we ensure we run all of them when anything changes.
Depends on D178524
Differential Revision: https://phabricator.services.mozilla.com/D178525
At the moment the actions module would already throw an InvalidArgument error, but for BiDi we want explicitly to throw NoSuchElement in this case.
Differential Revision: https://phabricator.services.mozilla.com/D178185
This doesn't change behavior, it just adds an option to disable
thread-safety analysis in local builds. I want to measure it in
different machines, and this would be useful for that. It's also useful
to workaround stuff like bug 1833676 which causes my builds to OOM
frequently.
Differential Revision: https://phabricator.services.mozilla.com/D178540
When I consolidated the allocation counts I forgot that we always track nursery
string allocations in optimised code as this feeds into the decision to disable
nursery string allocation. This is important for benchmarks like splay which
allocate a lot of long-lived strings.
Differential Revision: https://phabricator.services.mozilla.com/D178456
We don't want to track those changes in the github repo since that directory
is a Mozilla only convenience to help with the fast-forward process.
Differential Revision: https://phabricator.services.mozilla.com/D178450