[webkit-changes] [WebKit/WebKit] 7e186a: Length CSSPrimitiveValue::resolveAsLength() casts ...

Simon Fraser noreply at github.com
Sun Sep 1 08:59:09 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 7e186a333e75c2d40722b5e6796f0926a833517d
      https://github.com/WebKit/WebKit/commit/7e186a333e75c2d40722b5e6796f0926a833517d
  Author: Simon Fraser <simon.fraser at apple.com>
  Date:   2024-09-01 (Sun, 01 Sep 2024)

  Changed paths:
    M Source/WebCore/animation/CSSPropertyAnimation.cpp
    M Source/WebCore/css/CSSPrimitiveValue.cpp
    M Source/WebCore/css/CSSPrimitiveValue.h
    M Source/WebCore/style/StyleBuilderConverter.h

  Log Message:
  -----------
  Length CSSPrimitiveValue::resolveAsLength() casts to double then Length casts to float
https://bugs.webkit.org/show_bug.cgi?id=278969
rdar://135082837

Reviewed by Sam Weinig.

236687 at main added a `clampTo<double>()` in `CSSPrimitiveValue::computeLength()` in order
to avoid a compiler warning about int-to-float conversion of `maxValueForCssLength`. However,
Length stores a float internally, and its constructor does a static_cast<float> of the argument.
So let's just convert directly to floats.

`minValueForCssLength` and `maxValueForCssLength` become floats, and callers of the Length
constructor that takes a float now use `clampTo<float()`.

`maxValueForCssLength` can't be losslessly converted to a float; ideally we'd round down to
the next representable float (rather than to the nearest), but that can't be done at compile
time unless we just hardcode the float value, so stay with static_cast<float> for now.

* Source/WebCore/animation/CSSPropertyAnimation.cpp:
* Source/WebCore/css/CSSPrimitiveValue.cpp:
(WebCore::CSSPrimitiveValue::resolveAsLength const):
* Source/WebCore/css/CSSPrimitiveValue.h:
* Source/WebCore/style/StyleBuilderConverter.h:
(WebCore::Style::BuilderConverter::convertTextDecorationThickness):
(WebCore::Style::BuilderConverter::convertTextLengthOrNormal):
(WebCore::Style::BuilderConverter::convertLineHeight):

Canonical link: https://commits.webkit.org/283037@main



To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications


More information about the webkit-changes mailing list