mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 03:57:43 +00:00
LibWeb: Remove early continue in size parsing
Step 5 of parsing was always skipped because step 4 continues. Running step 5 causes some of the denominators to be 0 and causes divide by zero error in CSSPixelFraction. SVG Image with height of 0 will cause divide by zero error when calculating intrinsic aspect ratio of SVGDecoderImageData. We also get a divide by zero error in AlignContent::SpaceBetween of the FlexFormatingContext. During auto track stretching in GridFormatingContext there is a possibility for count_of_auto_max_sizing_tracks to stay 0.
This commit is contained in:
parent
e2bc606eeb
commit
7cd489d6aa
6 changed files with 15 additions and 8 deletions
|
@ -224,10 +224,10 @@ static Painting::BorderRadiiData normalized_border_radii_data(Layout::Node const
|
|||
auto s_bottom = (bottom_left_radius_px.horizontal_radius + bottom_right_radius_px.horizontal_radius);
|
||||
auto s_left = (top_left_radius_px.vertical_radius + bottom_left_radius_px.vertical_radius);
|
||||
CSSPixelFraction f = 1;
|
||||
f = min(f, l_top / s_top);
|
||||
f = min(f, l_right / s_right);
|
||||
f = min(f, l_bottom / s_bottom);
|
||||
f = min(f, l_left / s_left);
|
||||
f = (s_top != 0) ? min(f, l_top / s_top) : f;
|
||||
f = (s_right != 0) ? min(f, l_right / s_right) : f;
|
||||
f = (s_bottom != 0) ? min(f, l_bottom / s_bottom) : f;
|
||||
f = (s_left != 0) ? min(f, l_left / s_left) : f;
|
||||
|
||||
// If f < 1, then all corner radii are reduced by multiplying them by f.
|
||||
if (f < 1) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue