Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 8f690bd4d72836915fb0c82775e16f1bf01caf59
https://github.com/WebKit/WebKit/commit/8f690bd4d72836915fb0c82775e16f1bf01caf59
Author: Antoine Quint <[email protected]>
Date: 2023-01-30 (Mon, 30 Jan 2023)
Changed paths:
M Source/WebCore/platform/animation/TimingFunction.h
Log Message:
-----------
imported/w3c/web-platform-tests/css/css-transitions/parsing/transition-timing-function-computed.html
crashes (libc++ assertions)
https://bugs.webkit.org/show_bug.cgi?id=251352
Reviewed by Antti Koivisto and Chris Dumez.
We have a `m_stepPosition == otherSteps.m_stepPosition` check in
TimingFunction::operator==(const TimingFunction&) which would
catch the case where both m_stepPosition and otherSteps.m_stepPosition, which
are std::optional<>, would not hold a value.
However, we would hit a recently-enabled libc++ assertion (see bug 245692)
because of the check
`*m_stepPosition == StepPosition::End && !otherSteps.m_stepPosition`. Indeed,
it is possible for otherSteps.m_stepPosition to
hold a value while m_stepPosition does not.
We simply reverse the two clauses such that we test
`!otherSteps.m_stepPosition` first since we already know from earlier
that `otherSteps.m_stepPosition` and `m_stepPosition` cannot both not hold a
value.
* Source/WebCore/platform/animation/TimingFunction.h:
Canonical link: https://commits.webkit.org/259559@main
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes