fix more memory leaks
This commit is contained in:
		
							
								
								
									
										8
									
								
								sent.c
									
									
									
									
									
								
							
							
						
						
									
										8
									
								
								sent.c
									
									
									
									
									
								
							@ -142,6 +142,7 @@ Image *pngopen(char *filename)
 | 
			
		||||
		return NULL;
 | 
			
		||||
 | 
			
		||||
	img = malloc(sizeof(Image));
 | 
			
		||||
	memset(img, 0, sizeof(Image));
 | 
			
		||||
	if (!(img->png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, NULL,
 | 
			
		||||
					NULL, NULL))) {
 | 
			
		||||
		free(img);
 | 
			
		||||
@ -166,6 +167,9 @@ Image *pngopen(char *filename)
 | 
			
		||||
void pngfree(Image *img)
 | 
			
		||||
{
 | 
			
		||||
	png_destroy_read_struct(&img->png_ptr, img->info_ptr ? &img->info_ptr : NULL, NULL);
 | 
			
		||||
	free(img->buf);
 | 
			
		||||
	if (img->ximg)
 | 
			
		||||
		XDestroyImage(img->ximg);
 | 
			
		||||
	free(img);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -344,6 +348,8 @@ void cleanup()
 | 
			
		||||
	XCloseDisplay(xw.dpy);
 | 
			
		||||
	if (slides) {
 | 
			
		||||
		for (i = 0; i < slidecount; i++) {
 | 
			
		||||
			if (slides[i].text)
 | 
			
		||||
				free(slides[i].text);
 | 
			
		||||
			if (slides[i].img)
 | 
			
		||||
				pngfree(slides[i].img);
 | 
			
		||||
		}
 | 
			
		||||
@ -408,8 +414,6 @@ void load(FILE *fp)
 | 
			
		||||
			slides[i].img = 0;
 | 
			
		||||
		i++;
 | 
			
		||||
	}
 | 
			
		||||
	if (slides)
 | 
			
		||||
		slides[i].text = NULL;
 | 
			
		||||
	slidecount = i;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user