Explorar o código

Try to free resulting image data on error

DarthSim %!s(int64=6) %!d(string=hai) anos
pai
achega
20d6c2778a
Modificáronse 1 ficheiros con 2 adicións e 0 borrados
  1. 2 0
      process.go

+ 2 - 0
process.go

@@ -674,6 +674,7 @@ func vipsSaveImage(img *C.struct__VipsImage, imgtype imageType, quality int) ([]
 		err = C.vips_jpegsave_go(img, &ptr, &imgsize, 1, C.int(quality), cConf.JpegProgressive)
 	case imageTypePNG:
 		if err = C.vips_pngsave_go(img, &ptr, &imgsize, cConf.PngInterlaced, 1); err != 0 {
+			C.g_free_go(&ptr)
 			logWarning("Failed to save PNG; Trying not to embed icc profile")
 			err = C.vips_pngsave_go(img, &ptr, &imgsize, cConf.PngInterlaced, 0)
 		}
@@ -685,6 +686,7 @@ func vipsSaveImage(img *C.struct__VipsImage, imgtype imageType, quality int) ([]
 		err = C.vips_icosave_go(img, &ptr, &imgsize)
 	}
 	if err != 0 {
+		C.g_free_go(&ptr)
 		return nil, cancel, vipsError()
 	}