From 05f9733192fa4f1969d9a56752cc107954159fa9 Mon Sep 17 00:00:00 2001 From: Aliaksandr Kalenik Date: Fri, 24 May 2024 10:31:54 +0100 Subject: [PATCH] LibGfx: Make accumulate_even_odd_scanline() go faster ...by checking scanline vector bounds before entering the loop. --- Userland/Libraries/LibGfx/EdgeFlagPathRasterizer.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Userland/Libraries/LibGfx/EdgeFlagPathRasterizer.cpp b/Userland/Libraries/LibGfx/EdgeFlagPathRasterizer.cpp index a7c2ecc38cb..176edeec09e 100644 --- a/Userland/Libraries/LibGfx/EdgeFlagPathRasterizer.cpp +++ b/Userland/Libraries/LibGfx/EdgeFlagPathRasterizer.cpp @@ -309,10 +309,12 @@ template auto EdgeFlagPathRasterizer::accumulate_even_odd_scanline(EdgeExtent edge_extent, auto init, auto sample_callback) { SampleType sample = init; + VERIFY(edge_extent.min_x >= 0); + VERIFY(edge_extent.max_x <= static_cast(m_scanline.size())); for (int x = edge_extent.min_x; x <= edge_extent.max_x; x += 1) { - sample ^= m_scanline[x]; + sample ^= m_scanline.data()[x]; sample_callback(x, sample); - m_scanline[x] = 0; + m_scanline.data()[x] = 0; } return sample; }