summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDiego 'Flameeyes' Pettenò <flameeyes@gmail.com>2006-09-26 22:35:32 +0000
committerDiego 'Flameeyes' Pettenò <flameeyes@gmail.com>2006-09-26 22:35:32 +0000
commitdb7e88f1c603c2c32de727cffac61cd6c7785d2b (patch)
treeb1fd2264ae073c2621fac2b30f1e121a9ab67d85
parentc23d44479a48391e6b8cfe2e3c55b55a1b1938b4 (diff)
downloadxine-lib-db7e88f1c603c2c32de727cffac61cd6c7785d2b.tar.gz
xine-lib-db7e88f1c603c2c32de727cffac61cd6c7785d2b.tar.bz2
Don't dereference the pointer before it's tested for being not null.
Found by Coverity Scan CID 245. CVS patchset: 8312 CVS date: 2006/09/26 22:35:32
-rw-r--r--src/xine-engine/alphablend.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/src/xine-engine/alphablend.c b/src/xine-engine/alphablend.c
index 425bbd162..a0ff6ccf3 100644
--- a/src/xine-engine/alphablend.c
+++ b/src/xine-engine/alphablend.c
@@ -1961,13 +1961,10 @@ void _x_blend_xx44 (uint8_t *dst_img, vo_overlay_t *img_overl,
alphablend_t *extra_data,
xx44_palette_t *palette,int ia44)
{
- int src_width = img_overl->width;
- int src_height = img_overl->height;
- rle_elem_t *rle = img_overl->rle;
- rle_elem_t *rle_limit = rle + img_overl->num_rle;
+ int src_width, src_height;
+ rle_elem_t *rle, *rle_limit;
int mask;
- int x_off = img_overl->x + extra_data->offset_x;
- int y_off = img_overl->y + extra_data->offset_y;
+ int x_off, y_off;
int x, y;
uint8_t norm_pixel,hili_pixel;
uint8_t *dst_y;
@@ -1979,6 +1976,13 @@ void _x_blend_xx44 (uint8_t *dst_img, vo_overlay_t *img_overl,
if (!img_overl)
return;
+ src_width = img_overl->width;
+ src_height = img_overl->height;
+ rle = img_overl->rle;
+ rle_limit = rle + img_overl->num_rle;
+ x_off = img_overl->x + extra_data->offset_x;
+ y_off = img_overl->y + extra_data->offset_y;
+
dst_y = dst_img + dst_pitch*y_off + x_off;
/* checks to avoid drawing overlay outside the destination buffer */