diff --git a/Userland/Libraries/LibGfx/AntiAliasingPainter.cpp b/Userland/Libraries/LibGfx/AntiAliasingPainter.cpp index b97c759137..b7ae961078 100644 --- a/Userland/Libraries/LibGfx/AntiAliasingPainter.cpp +++ b/Userland/Libraries/LibGfx/AntiAliasingPainter.cpp @@ -194,12 +194,16 @@ void AntiAliasingPainter::draw_line(FloatPoint actual_from, FloatPoint actual_to void AntiAliasingPainter::stroke_path(Path const& path, Color color, float thickness) { + if (thickness <= 0) + return; // FIXME: Cache this? Probably at a higher level such as in LibWeb? fill_path(path.stroke_to_fill(thickness), color); } void AntiAliasingPainter::stroke_path(Path const& path, Gfx::PaintStyle const& paint_style, float thickness, float opacity) { + if (thickness <= 0) + return; // FIXME: Cache this? Probably at a higher level such as in LibWeb? fill_path(path.stroke_to_fill(thickness), paint_style, opacity); } diff --git a/Userland/Libraries/LibGfx/Path.cpp b/Userland/Libraries/LibGfx/Path.cpp index c09db4bf9f..66431a7597 100644 --- a/Userland/Libraries/LibGfx/Path.cpp +++ b/Userland/Libraries/LibGfx/Path.cpp @@ -416,6 +416,8 @@ Path Path::stroke_to_fill(float thickness) const // Note: This convolves a polygon with the path using the algorithm described // in https://keithp.com/~keithp/talks/cairo2003.pdf (3.1 Stroking Splines via Convolution) + VERIFY(thickness > 0); + auto& lines = split_lines(); if (lines.is_empty()) return Path {};