mirror of
https://github.com/imgproxy/imgproxy.git
synced 2025-09-28 20:43:54 +02:00
Try to clear resulting image data even if wasn't successfully saved
This commit is contained in:
10
process.go
10
process.go
@@ -648,6 +648,10 @@ func vipsLoadImage(data []byte, imgtype imageType, shrink int, svgScale float64,
|
||||
func vipsSaveImage(img *C.struct__VipsImage, imgtype imageType, quality int) ([]byte, context.CancelFunc, error) {
|
||||
var ptr unsafe.Pointer
|
||||
|
||||
cancel := func() {
|
||||
C.g_free_go(&ptr)
|
||||
}
|
||||
|
||||
err := C.int(0)
|
||||
|
||||
imgsize := C.size_t(0)
|
||||
@@ -668,17 +672,13 @@ func vipsSaveImage(img *C.struct__VipsImage, imgtype imageType, quality int) ([]
|
||||
err = C.vips_icosave_go(img, &ptr, &imgsize)
|
||||
}
|
||||
if err != 0 {
|
||||
return nil, func() {}, vipsError()
|
||||
return nil, cancel, vipsError()
|
||||
}
|
||||
|
||||
const maxBufSize = ^uint32(0)
|
||||
|
||||
b := (*[maxBufSize]byte)(ptr)[:int(imgsize):int(imgsize)]
|
||||
|
||||
cancel := func() {
|
||||
C.g_free_go(&ptr)
|
||||
}
|
||||
|
||||
return b, cancel, nil
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user