summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Gorse <mgorse@suse.com>2015-10-06 11:46:24 -0500
committerMatthias Clasen <mclasen@redhat.com>2015-10-06 21:38:42 -0400
commit2fb6bce8b3fdae67b8cdd93f253dad3743fc01b8 (patch)
treefce25e85a0cfcda453abf908629c961a3ef1e054
parent45b82bea2f80c768d7644a3cf2e9f48b6485cdfe (diff)
downloadgdk-pixbuf-2fb6bce8b3fdae67b8cdd93f253dad3743fc01b8.tar.gz
pixops: use gint64 in more places to avoid overflow when shifting
-rw-r--r--gdk-pixbuf/pixops/pixops.c34
1 files changed, 17 insertions, 17 deletions
diff --git a/gdk-pixbuf/pixops/pixops.c b/gdk-pixbuf/pixops/pixops.c
index b0abecd1b..6a4a09629 100644
--- a/gdk-pixbuf/pixops/pixops.c
+++ b/gdk-pixbuf/pixops/pixops.c
@@ -354,11 +354,11 @@ pixops_composite_nearest (guchar *dest_buf,
double scale_y,
int overall_alpha)
{
- int i;
- int x;
- int x_step = (1 << SCALE_SHIFT) / scale_x;
- int y_step = (1 << SCALE_SHIFT) / scale_y;
- int xmax, xstart, xstop, x_pos, y_pos;
+ gint64 i;
+ gint64 x;
+ gint64 x_step = (1 << SCALE_SHIFT) / scale_x;
+ gint64 y_step = (1 << SCALE_SHIFT) / scale_y;
+ gint64 xmax, xstart, xstop, x_pos, y_pos;
const guchar *p;
unsigned int a0;
@@ -524,13 +524,13 @@ pixops_composite_color_nearest (guchar *dest_buf,
guint32 color1,
guint32 color2)
{
- int i, j;
- int x;
- int x_step = (1 << SCALE_SHIFT) / scale_x;
- int y_step = (1 << SCALE_SHIFT) / scale_y;
+ gint64 i, j;
+ gint64 x;
+ gint64 x_step = (1 << SCALE_SHIFT) / scale_x;
+ gint64 y_step = (1 << SCALE_SHIFT) / scale_y;
int r1, g1, b1, r2, g2, b2;
int check_shift = get_check_shift (check_size);
- int xmax, xstart, xstop, x_pos, y_pos;
+ gint64 xmax, xstart, xstop, x_pos, y_pos;
const guchar *p;
unsigned int a0;
@@ -1338,20 +1338,20 @@ pixops_process (guchar *dest_buf,
PixopsLineFunc line_func,
PixopsPixelFunc pixel_func)
{
- int i, j;
- int x, y; /* X and Y position in source (fixed_point) */
+ gint64 i, j;
+ gint64 x, y; /* X and Y position in source (fixed_point) */
guchar **line_bufs;
int *filter_weights;
- int x_step;
- int y_step;
+ gint64 x_step;
+ gint64 y_step;
int check_shift;
- int scaled_x_offset;
+ gint64 scaled_x_offset;
- int run_end_x;
- int run_end_index;
+ gint64 run_end_x;
+ gint64 run_end_index;
x_step = (1 << SCALE_SHIFT) / scale_x; /* X step in source (fixed point) */
y_step = (1 << SCALE_SHIFT) / scale_y; /* Y step in source (fixed point) */