diff options
author | Wim Taymans <wim.taymans@gmail.com> | 2002-04-27 17:07:39 +0000 |
---|---|---|
committer | Wim Taymans <wim.taymans@gmail.com> | 2002-04-27 17:07:39 +0000 |
commit | 872fa1d897068c71c5f5fd42ad84b09e4920e633 (patch) | |
tree | 5028b9ac945dc94473e578144de764720bf395e8 /gst/effectv/gstaging.c | |
parent | 3b6525a36ad1bd1a2aa85dc46ba8d2380a9e34fa (diff) |
Fix an anoying (rare) segfault
Original commit message from CVS:
Fix an anoying (rare) segfault
Diffstat (limited to 'gst/effectv/gstaging.c')
-rw-r--r-- | gst/effectv/gstaging.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/gst/effectv/gstaging.c b/gst/effectv/gstaging.c index 43ab07e0..170716c4 100644 --- a/gst/effectv/gstaging.c +++ b/gst/effectv/gstaging.c @@ -253,7 +253,7 @@ dusts (guint32 *dest, gint width, gint height, gint dust_interval, gint area_sca int i, j; int dnum; int d, len; - int x, y; + guint x, y; if (dust_interval == 0) { if ((fastrand () & 0xf0000000) == 0) { @@ -272,8 +272,9 @@ dusts (guint32 *dest, gint width, gint height, gint dust_interval, gint area_sca dest[y * width + x] = 0x101010; y += dy[d]; x += dx[d]; - if (x < 0 || x >= width) break; - if (y < 0 || y >= height) break; + + if (y >= height || x >= width) break; + d = (d + fastrand () % 3 - 1) & 7; } } @@ -285,7 +286,7 @@ pits (guint32 *dest, gint width, gint height, gint area_scale, gint pits_interva { int i, j; int pnum, size, pnumscale; - int x, y; + guint x, y; pnumscale = area_scale * 2; if (pits_interval) { @@ -308,6 +309,9 @@ pits (guint32 *dest, gint width, gint height, gint area_scale, gint pits_interva for (j = 0; j < size; j++) { x = x + fastrand () % 3 - 1; y = y + fastrand () % 3 - 1; + + if (y >= height || x >= width) break; + dest[y * width + x] = 0xc0c0c0; } } |