From f7bd697cdf90dd8725b1a7e815750c7192d9e44a Mon Sep 17 00:00:00 2001 From: John Hawthorn Date: Tue, 19 Jan 2010 19:28:23 -0800 Subject: 2 bugs --- src/jpeg.c | 4 ++++ src/scale.c | 4 ++-- src/xlib.c | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/jpeg.c b/src/jpeg.c index 90ff880..8ae0b52 100644 --- a/src/jpeg.c +++ b/src/jpeg.c @@ -60,6 +60,10 @@ static struct image *jpeg_open(FILE *f){ void jpeg_prep(struct image *img){ struct jpeg_t *j = (struct jpeg_t *)img; + /* We've previously loaded this image, clean that up*/ + if(img->state & LOADED) + jpeg_destroy_decompress(&j->cinfo); + jpeg_create_decompress(&j->cinfo); rewind(j->f); jpeg_stdio_src(&j->cinfo, j->f); diff --git a/src/scale.c b/src/scale.c index eb9e689..bec380c 100644 --- a/src/scale.c +++ b/src/scale.c @@ -46,8 +46,8 @@ static void superscale(struct image *img, unsigned int width, unsigned int heigh TDEBUG_START - unsigned int divx[bytesperline]; - unsigned int divy[bytesperline]; + unsigned int divx[width]; + unsigned int divy[height]; memset(divx, 0, sizeof divx); memset(divy, 0, sizeof divy); for(x = 0; x < img->bufwidth; x++){ diff --git a/src/xlib.c b/src/xlib.c index 3adda92..393617d 100644 --- a/src/xlib.c +++ b/src/xlib.c @@ -72,7 +72,7 @@ static void ximage(struct data_t *data, struct image *img, unsigned int width, u width, height, 32, 0 ); - ximg->data = malloc(ximg->bytes_per_line * ximg->height); + ximg->data = malloc(ximg->bytes_per_line * ximg->height); XInitImage(ximg); } (fast ? nearestscale : scale)(img, ximg->width, ximg->height, ximg->bytes_per_line, ximg->data); -- cgit v1.2.3