diff --git a/Tests/LibWeb/TestCSSPixels.cpp b/Tests/LibWeb/TestCSSPixels.cpp index 7c78cbab9d..99c839a7ba 100644 --- a/Tests/LibWeb/TestCSSPixels.cpp +++ b/Tests/LibWeb/TestCSSPixels.cpp @@ -87,4 +87,12 @@ TEST_CASE(saturated_subtraction) EXPECT_EQ(value - -1, CSSPixels(INFINITY)); } +TEST_CASE(multiplication_uses_i64_for_raw_values) +{ + CSSPixels a(1200); + CSSPixels b(647); + CSSPixels c = a * b; + EXPECT_EQ(c, CSSPixels(776400)); +} + } diff --git a/Userland/Libraries/LibWeb/PixelUnits.cpp b/Userland/Libraries/LibWeb/PixelUnits.cpp index 6fc367a8f3..e8077bb630 100644 --- a/Userland/Libraries/LibWeb/PixelUnits.cpp +++ b/Userland/Libraries/LibWeb/PixelUnits.cpp @@ -119,7 +119,7 @@ CSSPixels CSSPixels::operator-(CSSPixels const& other) const CSSPixels CSSPixels::operator*(CSSPixels const& other) const { CSSPixels result; - result.set_raw_value((raw_value() * other.raw_value()) >> fractional_bits); + result.set_raw_value((static_cast(raw_value()) * other.raw_value()) >> fractional_bits); return result; }