summaryrefslogtreecommitdiffstats
path: root/gst/effectv/gstaging.c
diff options
context:
space:
mode:
authorWim Taymans <wim.taymans@gmail.com>2002-04-27 17:07:39 +0000
committerWim Taymans <wim.taymans@gmail.com>2002-04-27 17:07:39 +0000
commit872fa1d897068c71c5f5fd42ad84b09e4920e633 (patch)
tree5028b9ac945dc94473e578144de764720bf395e8 /gst/effectv/gstaging.c
parent3b6525a36ad1bd1a2aa85dc46ba8d2380a9e34fa (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.c12
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;
}
}