win32: Fix rowstride math
authorBenjamin Otte <otte@redhat.com>
Wed, 15 Mar 2023 00:45:48 +0000 (01:45 +0100)
committerBenjamin Otte <otte@redhat.com>
Thu, 16 Mar 2023 20:40:02 +0000 (21:40 +0100)
gdk/win32/gdkcursor-win32.c

index dc707d56749591b825bd6ff2a998c71cee5705f4..5d388d04b229311311824d03292c4d4a584fb1e7 100644 (file)
@@ -1005,7 +1005,8 @@ gdk_win32_icon_to_pixbuf_libgtk_only (HICON hicon,
   } bmi;
   HDC hdc;
   uint8_t *pixels, *bits;
-  int rowstride, x, y, w, h;
+  int x, y, w, h;
+  gsize rowstride;
 
   if (!GDI_CALL (GetIconInfo, (hicon, &ii)))
     return NULL;
@@ -1057,7 +1058,7 @@ gdk_win32_icon_to_pixbuf_libgtk_only (HICON hicon,
                no_alpha = FALSE;
              pixels += 4;
            }
-         pixels += (w * 4 - rowstride);
+         pixels += rowstride - w * 4;
        }
 
       /* mask */
@@ -1072,7 +1073,7 @@ gdk_win32_icon_to_pixbuf_libgtk_only (HICON hicon,
                  pixels[3] = 255 - bits[(x + y * w) * 4];
                  pixels += 4;
                }
-             pixels += (w * 4 - rowstride);
+             pixels += rowstride - w * 4;
            }
        }
     }
@@ -1146,7 +1147,7 @@ gdk_win32_icon_to_pixbuf_libgtk_only (HICON hicon,
                  xorp++;
                }
            }
-         pixels += (w * 4 - rowstride);
+         pixels += rowstride - w * 4;
        }
     }