diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/jpeg.c | 4 | ||||
| -rw-r--r-- | src/scale.c | 4 | ||||
| -rw-r--r-- | src/xlib.c | 2 | 
3 files changed, 7 insertions, 3 deletions
| @@ -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++){ @@ -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); | 
