Loirooriol · GitHub

Merged

Merged

@Loirooriol

mrobinson

@Loirooriol

Psychpsyo pushed a commit to Psychpsyo/stylo that referenced this pull request

Jun 15, 2026
We were previously using a mix of f32 and f64. Then it could happen that
we would first check that `a < b` in f64, but when converting to f32,
they might become equal due to the precision loss. Thus this could break
invariants in the logic, making a `debug_unreachable!()` reachable.
Servo PR: servo/servo#45682
Signed-off-by: Oriol Brufau <obrufau@igalia.com>
Co-authored-by: Martin Robinson <mrobinson@abandonedwig.info>

@Loirooriol

Co-authored-by: Martin Robinson <mrobinson@abandonedwig.info>
Signed-off-by: Oriol Brufau <obrufau@igalia.com>

@Loirooriol

@Loirooriol

@Loirooriol

@Loirooriol

TG199 pushed a commit to TG199/servo that referenced this pull request

Jun 21, 2026
Bumps Stylo to servo/stylo#392
This avoids potential assert failures due to the precision loss of
converting f64 into f32.
Testing: Adds a crashtest. Since the problem was dependent on timing, it
would only fail intermittently. With the fix it should never fail.
Fixes: servo#45008
Signed-off-by: Oriol Brufau <obrufau@igalia.com>
Co-authored-by: Martin Robinson <mrobinson@abandonedwig.info>

Loirooriol added a commit to servo/stylo that referenced this pull request

Jul 1, 2026
We were previously using a mix of f32 and f64. Then it could happen that
we would first check that `a < b` in f64, but when converting to f32,
they might become equal due to the precision loss. Thus this could break
invariants in the logic, making a `debug_unreachable!()` reachable.
Servo PR: servo/servo#45682
Signed-off-by: Oriol Brufau <obrufau@igalia.com>
Co-authored-by: Martin Robinson <mrobinson@abandonedwig.info>

Read the original on github.com ↗