i3lock-color

The world's most popular non-default computer lockscreen.
Index Commits Files Refs README LICENSE
commit 29251d61cd94e26caddc7fc03a1464fedf49309c
parent 2040285ce94949e91d4df57973ecaded59db45d2
Author: Chris Guillott <chris@techfo.xyz>
Date:   Wed,  6 Dec 2017 14:20:04 -0500

fix naive blur

Diffstat:
Mblur.c | 11++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/blur.c b/blur.c
@@ -96,9 +96,10 @@ blur_image_surface (cairo_surface_t *surface, int sigma)
 }
 
 void blur_impl_horizontal_pass_generic(uint32_t *src, uint32_t *dst, int width, int height) {
+        uint32_t *o_src = src;
     for (int row = 0; row < height; row++) {
         for (int column = 0; column < width; column++, src++) {
-            uint32_t rgbaIn[KERNEL_SIZE];
+            uint32_t rgbaIn[KERNEL_SIZE + 1];
 
             // handle borders
             int leftBorder = column < HALF_KERNEL;
@@ -119,8 +120,12 @@ void blur_impl_horizontal_pass_generic(uint32_t *src, uint32_t *dst, int width, 
                 for (int k = 0; i < KERNEL_SIZE; i++, k++)
                     rgbaIn[i] = *(src - k);
             } else {
-                for (; i < KERNEL_SIZE; i++)
-                    rgbaIn[i] = *(src + i - HALF_KERNEL);
+                for (; i < KERNEL_SIZE; i++) {
+                    if ((long long) ((src + 4*i - HALF_KERNEL) + 1)
+                            > (long long) (o_src + (height * width)))
+                        break;
+                          rgbaIn[i] = *(src + i - HALF_KERNEL);
+                                }
             }
 
             uint32_t acc[4] = {0};