diff options
author | Mike Gorse <mgorse@suse.com> | 2015-10-06 11:46:24 -0500 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2015-10-06 21:38:42 -0400 |
commit | 2fb6bce8b3fdae67b8cdd93f253dad3743fc01b8 (patch) | |
tree | fce25e85a0cfcda453abf908629c961a3ef1e054 | |
parent | 45b82bea2f80c768d7644a3cf2e9f48b6485cdfe (diff) | |
download | gdk-pixbuf-2fb6bce8b3fdae67b8cdd93f253dad3743fc01b8.tar.gz |
pixops: use gint64 in more places to avoid overflow when shifting
-rw-r--r-- | gdk-pixbuf/pixops/pixops.c | 34 |
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) */ |